Rumah > pangkalan data > tutorial mysql > mysql触发器实例_MySQL

mysql触发器实例_MySQL

WBOY
Lepaskan: 2016-06-01 13:17:27
asal
1153 orang telah melayarinya

测试表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;  
Salin selepas log masuk

测试表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;  
Salin selepas log masuk

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;//
Salin selepas log masuk

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;//
Salin selepas log masuk

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;//
Salin selepas log masuk
注:以上触发器例子中出现的new为修改后的数据, old为修改前的数据
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan