标签:
创建触发器
在创建触发器时,需要给出 4条信息:
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中插入一行数据:
INSERT INTO aaa_test(username,PASSWORD,birthday) VALUES(‘test_trigger‘,‘12345‘,CURRENT_DATE);
此时表aaa_test中的结果:
查看标量@aaa的结果,执行 : "SELECT @aaa",其结果等于最新id值
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的记录,执行:
DELETE FROM aaa_test WHERE id=48;
查看变量@bbb,执行:
SELECT @bbb;
其结果为48:
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//
修改密码之前:
修改密码:
update aaa_test set password=‘helloWorld‘ where id=49;
变量@ccc结果为修改之前的值:
SELECT @ccc;
变量@ddd结果为修改后的值:
SELECT @ddd;
标签:
原文地址:http://www.cnblogs.com/wlf-919874006/p/5322048.html