+ -
当前位置:首页 → 问答吧 → 触发器请教

触发器请教

时间:2011-09-22

来源:互联网

SQL code
CREATE TRIGGER `upd_user` AFTER update ON `user` 
    FOR EACH ROW 
    BEGIN
     if new.username <> old.username then 
            insert into user_log(username) value(new.username);
       END IF;
END;



创建个触发器怎么不对啊?
如果一行中username要是被改了 就把改了名字插入user_log 中
语法错误

作者: data_source   发布时间: 2011-09-22

delimiter $

CREATE TRIGGER `upd_user` AFTER update ON `user` 
  FOR EACH ROW 
  BEGIN
  if new.username <> old.username then 
  insert into user_log(username) value(new.username);
  END IF;
END;



delimiter ;

作者: rucypli   发布时间: 2011-09-22

错误信息是什么? 提问时最好把问题尽可能描述清楚。

问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)

作者: ACMAIN_CHM   发布时间: 2011-09-22

引用 1 楼 rucypli 的回复:

delimiter $

CREATE TRIGGER `upd_user` AFTER update ON `user`
FOR EACH ROW
BEGIN
if new.username <> old.username then
insert into user_log(username) value(new.userna……


谢谢 请教一下 如果不加delimiter $ 和后面的delimiter ;为什么报错啊?
mysql 不允许吗?

作者: data_source   发布时间: 2011-09-23

引用 1 楼 rucypli 的回复:

delimiter $

CREATE TRIGGER `upd_user` AFTER update ON `user`
FOR EACH ROW
BEGIN
if new.username <> old.username then
insert into user_log(username) value(new.userna……

不加delimiter $ 和 delimiter ;为啥出错?

作者: data_source   发布时间: 2011-09-23

不加话,的当MYSQL命令行工具看到第一个分号;就直接提交了。

作者: ACMAIN_CHM   发布时间: 2011-09-23

引用 4 楼 data_source 的回复:
引用 1 楼 rucypli 的回复:

delimiter $

CREATE TRIGGER `upd_user` AFTER update ON `user`
FOR EACH ROW
BEGIN
if new.username <> old.username then
insert into user_log(username) value(new.userna……

……

MYSQL默认分号为语句结束符

作者: WWWWA   发布时间: 2011-09-23

相关阅读 更多

热门下载

更多