> 데이터 베이스 > MySQL 튜토리얼 > mysql触发器实例_MySQL

mysql触发器实例_MySQL

WBOY
풀어 주다: 2016-06-01 13:17:27
원래의
1155명이 탐색했습니다.

测试表1

DROP TABLE IF EXISTS test;                  CREATE TABLE test (    id           bigint(11) unsigned NOT NULL AUTO_INCREMENT,    name         varchar(100) NOT NULL DEFAULT '',    type         varchar(100),  create_time  datetime,    PRIMARY KEY (ID)  ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;  
로그인 후 복사

测试表2

DROP TABLE IF EXISTS test_hisy;                  CREATE TABLE test_hisy (    id           bigint(11) unsigned NOT NULL AUTO_INCREMENT,    name         varchar(100) NOT NULL DEFAULT '',    type         varchar(100),  create_time  datetime,  operation    varchar(100) COMMENT '操作类型',  PRIMARY KEY (ID)  ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;  
로그인 후 복사

insert触发器

表test新增记录后,将type值为“1”的记录同时插入到test_hisy表中(AFTER INSERT:录入后触发, BEFORE INSERT:录入前触发)

DELIMITER //DROP TRIGGER IF EXISTS t_after_insert_test//CREATE TRIGGER t_after_insert_testAFTER INSERT ON testFOR EACH ROWBEGIN    IF new.type='1' THEN    insert into test_hisy(name, type, create_time, operation)     values(new.name, new.type, new.create_time, 'insert');    END IF;END;//
로그인 후 복사

update触发器

表test修改时,若type值为“2”则将修改前的记录同时插入到test_hisy表中(AFTER UPDATE:修改后触发, BEFORE UPDATE:修改前触发)

DELIMITER //DROP TRIGGER IF EXISTS t_before_update_test//CREATE TRIGGER t_before_update_testBEFORE UPDATE ON testFOR EACH ROWBEGIN    IF new.type='2' THEN    insert into test_hisy(name, type, create_time, operation)     values(old.name, old.type, old.create_time, 'update');    END IF;END;//
로그인 후 복사

delete触发器

表test删除记录前,将删除的记录录入到表test_hisy中(AFTER DELETE:删除后触发, BEFORE DELETE:删除前触发)

DELIMITER //DROP TRIGGER IF EXISTS t_before_delete_test//CREATE TRIGGER t_before_delete_testBEFORE DELETE ON testFOR EACH ROWBEGIN    insert into test_hisy(name, type, create_time, operation)     values(old.name, old.type, old.create_time, 'delete');END;//
로그인 후 복사
注:以上触发器例子中出现的new为修改后的数据, old为修改前的数据
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿