mysql设置触发器出现的错误
错误提示checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''...
错误提示check the manual that corresponds to your MySQL server version for the right syntax to use near ''3
代码如下:
create trigger abs before insert on t20130406 for each row
begin
insert into t20130406 set name1="dd";
end;
在学mysql触发器,怎么弄都不行,请问出错在哪里呢 展开
代码如下:
create trigger abs before insert on t20130406 for each row
begin
insert into t20130406 set name1="dd";
end;
在学mysql触发器,怎么弄都不行,请问出错在哪里呢 展开
2个回答
2013-04-07
展开全部
你一个触发器
当 insert into t20130406 表的时候, 触发。
触发的时候, 干的事情, 是 insert into t20130406 ...
这样不是递归了么?
如果你仅仅是想, 触发的时候, 干的事情,是把 name1 列的数值, 设置为 dd
那是很简单的。
SET new. name1 = 'dd';
就可以了。
下面是一个例子:
mysql> DELIMITER //
mysql> CREATE TRIGGER BeforeInsertTest
-> BEFORE INSERT ON test_trigger_table
-> FOR EACH ROW
-> BEGIN
-> SET new.val = '100';
-> END;
-> //
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql> INSERT INTO test_trigger_table(id, name) VALUES (1, 'ABC');
-> //
Query OK, 1 row affected (0.03 sec)
mysql> select * from test_trigger_table;
-> //
+------+------+------+
| id | name | val |
+------+------+------+
| 1 | ABC | 100 |
+------+------+------+
1 row in set (0.00 sec)
当 insert into t20130406 表的时候, 触发。
触发的时候, 干的事情, 是 insert into t20130406 ...
这样不是递归了么?
如果你仅仅是想, 触发的时候, 干的事情,是把 name1 列的数值, 设置为 dd
那是很简单的。
SET new. name1 = 'dd';
就可以了。
下面是一个例子:
mysql> DELIMITER //
mysql> CREATE TRIGGER BeforeInsertTest
-> BEFORE INSERT ON test_trigger_table
-> FOR EACH ROW
-> BEGIN
-> SET new.val = '100';
-> END;
-> //
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql> INSERT INTO test_trigger_table(id, name) VALUES (1, 'ABC');
-> //
Query OK, 1 row affected (0.03 sec)
mysql> select * from test_trigger_table;
-> //
+------+------+------+
| id | name | val |
+------+------+------+
| 1 | ABC | 100 |
+------+------+------+
1 row in set (0.00 sec)
2013-04-07
展开全部
insert into t20130406 set name1="dd";
insert 语句没有 set关键字吧,要使用update
update t20130406 set name1="dd" where XXX 条件;
insert 语句没有 set关键字吧,要使用update
update t20130406 set name1="dd" where XXX 条件;
追问
试过了,还是不行,出现下面的错误
#1064 - 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 '' at line 3
原语句
create trigger abs before insert on t20130406 for each row
begin
Update t20130406 set name2="dd" ;
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询