mysql update触发器获得update的这条记录

yujia5200 2015-09-19 02:27:57
如题,网上搜索说update之前的记录是放在deleted里面的,但是我update之后数据库报错
错误代码: 1146
Table 'carservice.old' doesn't exist
...全文
647 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujia5200 2015-09-21
  • 打赏
  • 举报
回复
比如 id name status 1 张三 0 2 李四 0 3 王五 0 当我修改张三的status 变为1的时候,我就获取到这条记录,但是update status不是我做的,我只能知道status变了,并不知道谁的status变了,所有我想要一个触发器,每当status变更时,我就获取这个条记录,请问有办法吗e
yujia5200 2015-09-21
  • 打赏
  • 举报
回复
晚上回家查了一下,mysql是没有inserted跟deleted这两张临时表的,我现在的需求是,mysql中,每当你修改一条记录时,获取该条记录的id
ACMAIN_CHM 2015-09-20
  • 打赏
  • 举报
回复
mysql 中语法不一样,使用 new old
引用
CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT); CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY); CREATE TABLE test4( a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b4 INT DEFAULT 0 ); delimiter | CREATE TRIGGER testref BEFORE INSERT ON test1 FOR EACH ROW BEGIN INSERT INTO test2 SET a2 = NEW.a1; DELETE FROM test3 WHERE a3 = NEW.a1; UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1; END; | delimiter ; INSERT INTO test3 (a3) VALUES (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL); INSERT INTO test4 (a4) VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
建议花点时间阅读一下MYSQL的官方免费文档。
rick-he 2015-09-20
  • 打赏
  • 举报
回复
错误是说这个表不存在Table 'carservice.old' doesn't exist,你先确定下有没有old表在carservice这个数据库下
yujia5200 2015-09-19
  • 打赏
  • 举报
回复
看到old请当作deleted,old是看的别的帖子改的
yujia5200 2015-09-19
  • 打赏
  • 举报
回复
begin insert into member_order_info_temp (select * from deleted where member_order_info_temp.id=old.id) ; end 代码如上

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧