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触发器,怎么弄都不行,请问出错在哪里呢
展开
 我来答
匿名用户
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)
匿名用户
2013-04-07
展开全部
insert into t20130406 set name1="dd";
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式