关于mysql触发器语句的问题

youshile 2011-03-08 09:32:11
我有两个表,t1和t2,其中t1和t2表里都有字段status,
我想在mysql里设置一个触发器:
当t1里面的status字段更改时更改t2表里的status字段,
请问这个触发器语句怎么写?
麻烦大家写仔细点,我到网上找了很多,但是没看明白,谢谢!
...全文
129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
土匪八号 2011-03-17
  • 打赏
  • 举报
回复
在字段前加上'表名.'就可以了
zuoxingyu 2011-03-09
  • 打赏
  • 举报
回复
21.1. CREATE TRIGGER语法
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。

触发程序与命名为tbl_name的表相关。tbl_name必须引用永久性表。不能将触发程序与TEMPORARY表或视图关联起来。

trigger_time是触发程序的动作时间。它可以是BEFORE或AFTER,以指明触发程序是在激活它的语句之前或之后触发。


参考手册里面有详细的例子,多读几篇手册,把原理弄清楚先。
wwwwb 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 youshile 的回复:]
我有两个表,t1和t2,其中t1和t2表里都有字段status,
我想在mysql里设置一个触发器:
当t1里面的status字段更改时更改t2表里的status字段,
请问这个触发器语句怎么写?
麻烦大家写仔细点,我到网上找了很多,但是没看明白,谢谢!
[/Quote]
两表是否有相同的KEY字段,如有,假设为ID

create trigger test after update
on t1
for each row
begin
update t2 set status=new.status where id=new.id;
end
ACMAIN_CHM 2011-03-08
  • 打赏
  • 举报
回复
create trigger test after update on t1
for each row
update t2 set status=new.status where id=new.id;


用2楼的方法就行了。

建议阅读一下MYSQL手册中的例子。
rucypli 2011-03-08
  • 打赏
  • 举报
回复
create trigger test after update
on t1
for each row
begin
update t2 set status=new.status where id=new.id;
end
rucypli 2011-03-08
  • 打赏
  • 举报
回复
create trigger test after update
on t1
for each row
begin

56,687

社区成员

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

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