DELIMITER |
CREATE TRIGGER INSERT_N_aaa after insert on aaa for each row
begin
DECLARE login_user CHAR(20);
SELECT USER() into login_user;
IF login_user=sysdata@localhost THEN LEAVE;
END IF;
insert into t_db_change values(NULL,'aaa','ID',new.ID,null,null,null,null,null,null,null,null,sysdate(),0,1,'n_aaa');
END;
|上边的触发器,创建的时候好像判断语句的格式有问题,总报错,去掉条件判断就没问题了,所以估计是不熟悉语法,改后希望能运行成功贴出来,谢谢!
CREATE TRIGGER INSERT_N_aaa after insert on aaa for each row
begin
DECLARE login_user CHAR(20);
SELECT USER() into login_user;
IF login_user=sysdata@localhost THEN LEAVE;
END IF;
insert into t_db_change values(NULL,'aaa','ID',new.ID,null,null,null,null,null,null,null,null,sysdate(),0,1,'n_aaa');
END;
|上边的触发器,创建的时候好像判断语句的格式有问题,总报错,去掉条件判断就没问题了,所以估计是不熟悉语法,改后希望能运行成功贴出来,谢谢!
解决方案 »
- 新手求教mysql的odbc的问题
- 跪求啥原因,运行后出现以下Exception
- centos5.5下mysql启动失败提示:Starting MySQL.Manager of pid-file quit without updating f
- 如何在表最后添加一个自增字段
- 表名为GROUP怎么查询
- 关于乱码
- 出现Fatal error: Maximum execution time of 60 seconds exceeded in .....
- 启动winmysqladmin的问题
- mysql的遍历次数问题
- Mysql如何在某个时间段内,统计每一天的访问ip,相同的只被计算一次且根据来访设备分组?
- 有什么方法能很快的导入一批1G多的数据
- 如何计算这个涨幅?
END IF;
/* Error: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
END IF
insert into t_db_change values(NULL,'aaa','ID',new.ID,null,null,nul' at line 5" */
试试IF login_user='sysdata@localhost' THEN LEAVE;
END IF;你这里到 LEAVE的意思是说 如果变量login_user = 'sysdata@localhost' 就什么都不执行么?
那你改成这样:IF login_user<>'sysdata@localhost' THEN
insert into t_db_change values(NULL,'aaa','ID',new.ID,null,null,null,null,null,null,null,null,sysdate(),0,1,'n_aaa');
END IF;
leave 一般用在无退出条件的循环里面 ~
mysql>
mysql> create table aaa(id int) |
Query OK, 0 rows affected (0.08 sec)mysql>
mysql> CREATE TRIGGER INSERT_N_aaa after insert on aaa for each row
-> lable1:begin
-> DECLARE login_user CHAR(20);
-> SELECT USER() into login_user;
-> IF login_user='sysdata@localhost' THEN
-> LEAVE lable1;
-> END IF;
-> insert into t_db_change values(NULL,'aaa','ID',new.ID,null,null,null,null,null,null,null,null,sysdate(),0,1,'n_aaa');
-> END lable1;
-> |
Query OK, 0 rows affected (0.11 sec)mysql>