版权声明:如需转载,请注明出处。 https://blog.csdn.net/caiqing116/article/details/84944924
1.触发器 是一个特殊的存储过程,只要当一个预定义的事件发生时就会被MySQL自动调用
2.创建触发器的标准语句
CREATE TRIGGER trigger_name trigger_time trigger_event
ONT tb_name FOR EACH ROW trigger_stmt;
[创建触发器名字 触发时间 触发事件 在某个数据表上的每一行 触发的程序内容]
触发器程序可以使用BEGIN END 开始和结束程序
trigger_time:可以指定为before 或 after
trigger_event:可以指定为 INSERT、UPDATE、DELETE
trigger_stmt:是触发程序体
3.创建只有一个执行语句的触发器
创建测试表
CREATE TABLE account(acct_num INT, amount DECIMAL(10,2));
创建触发器执行测试
CREATE TRIGGER ins_sum BEFORE INSERT
ON account FOR EACH ROW
SET @sum= @sum + NEW.amount;
SET @sum =0;
INSERT INTO account VALUES(1,1.00),(2,2.00);
SELECT @sum;
4.创建多个执行语句的触发器
即是在trigger_stmt创建多个执行程序
CREATE TABLE test1(id1 INT);
CREATE TABLE test2(id2 INT);
创建触发器执行测试
DELIMITER //
CREATE TRIGGER ins_test BEFORE INSERT ON test1
FOR EACH ROW BEGIN
SET @sumt= @sumt + NEW.id1;
INSERT INTO test2 SET id2 = NEW.id1;
END//
DELIMITER ;
SET @sumt =0;
INSERT INTO test1 VALUES(1),(2);
5.查看触发器
SHOW TRIGGERS\G;
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_NAEM ='ins_test'\G;
6.删除触发器
DROP TIRGGER database.trigger_name;
DROP TRIGGER ins_test;