DELIMITER $$
DROP TRIGGER IF EXISTS `update_test` $$
CREATE
TRIGGER `update_test` AFTER UPDATE
ON `test`
FOR EACH ROW BEGIN
-- SELECT id FROM test WHERE yl = new.yl 获取test表中yl字段修改后的对应id
UPDATE test2 SET cl = new.yl WHERE id = (SELECT id FROM test WHERE yl = new.yl)
END$$
DELIMITER
原test表
原test2表
修改test表中yl字段
现在test表
现test2表
至于如何修改test2表中的字段值,按你需求写吧。
1、触发器是update后激发的,我想你需要的是mysql计划任务。2、计划任务状态
show variables like '%event%'
3、使用下列的任意一句开启计划任务:
SET GLOBAL event_scheduler = ON
SET @@global.event_scheduler = ON
SET GLOBAL event_scheduler = 1 -- 0代表关闭
SET @@global.event_scheduler = 1
4、创建event语法
help create event
5、实例
实例0:
每5分钟删除sms表上面ybmid为空白且createdate距现时间超过5分钟的数据。
USE test
CREATE EVENT event_delnull
ON SCHEDULE
EVERY 5 MINUTE STARTS '2012-01-01 00:00:00' ENDS '2012-12-31 00:00:00'
DO
DELETE FROM sms WHERE ybmid='' AND TIMEDIFF(SYSDATE(),createdate)>'00:05:00'
实例1:
每天调用存储过程一次:
mysql>delimiter //
mysql>create event updatePTOonSunday
->on schedule every 1 day
->do
->call updatePTO()
->//
Query OK, 0 rows affected (0.02 sec)
这里updatePTO()是数据库里自定义的存储过程
6、查看任务计划:
SELECT * FROM mysql.event\G
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)