MySQL基础系列之 触发器

版权声明:如需转载,请注明出处。 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;

猜你喜欢

转载自blog.csdn.net/caiqing116/article/details/84944924
今日推荐