MySQL 5.1 DELETE 触发器,取旧时间值不正确的问题

2022-04-20 16:06:31 +08:00
 uti6770werty
CREATE TABLE `dll` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `lname` varchar(30) DEFAULT NULL,
  `lid` varchar(5) DEFAULT NULL,
  `create_at` timestamp NULL DEFAULT NULL,
  `update_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TRIGGER `insertrow_dll` BEFORE INSERT ON `dll` FOR EACH ROW SET NEW.`create_at`=NOW();
CREATE TRIGGER `deleterow_dll` AFTER  DELETE ON `dll` FOR EACH ROW 
INSERT INTO ell (lname,lid,create_at,update_at) VALUES (old.lname,old.lid,old.create_at,now());

期望删除 dll 一行数据,其实是移过去 ell ,应该把创建时间也带过去,
在 ell 看到 create_at,update_at ,取值都被设置成了 NOW(),
是因为什么原因呢?

1041 次点击
所在节点    MySQL
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/848169

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX