建立触发器javascript
在建立触发器时,须要给出 4条信息:java
drop trigger if exists test_trigger; ##删除触发器 delimiter// ##改变语句分割符 create trigger test_trigger after insert on aaa_test ##建立触发器test_trigger,当表aaa_test插入数据后执行 for each row ##FOR EACH ROW是触发器的执行间隔,FOR EACH ROW子句通知触发器每隔一行执行一次动做,而不是对整个表执行一次 begin select new.id into @aaa; ##将aaa_test表中id列的最新的值保存到用户变量@aaa中 end//
往表aaa_test中插入一行数据:spa
INSERT INTO aaa_test(username,PASSWORD,birthday) VALUES('test_trigger','12345',CURRENT_DATE);
此时表aaa_test中的结果:code
查看标量@aaa的结果,执行 : "SELECT @aaa",其结果等于最新id值blog
DROP TRIGGER IF EXISTS test_delete_trigger_before; DELIMITER// CREATE TRIGGER test_delete_trigger_before BEFORE DELETE ON aaa_test FOR EACH ROW BEGIN SELECT old.id INTO @bbb; ##将要删除数据行的id值保存到变量@bbb中 END//
删除以前aaa_test表中数据为:事件
删除id=48的记录,执行:ip
DELETE FROM aaa_test WHERE id=48;
查看变量@bbb,执行:it
SELECT @bbb;
其结果为48:class
DROP TRIGGER IF EXISTS test_update_trigger_before; DELIMITER// CREATE TRIGGER test_update_trigger_before BEFORE UPDATE ON aaa_test FOR EACH ROW BEGIN SELECT UPPER(old.password) INTO @ccc; ##将修改以前的值保存到@ccc变量中 SELECT LOWER(new.password ) INTO @ddd; ##将修改后的新值保存到@ddd变量中 END//
修改密码以前:test
修改密码:
update aaa_test set password='helloWorld' where id=49;
变量@ccc结果为修改以前的值:
SELECT @ccc;
变量@ddd结果为修改后的值:
SELECT @ddd;