CREATE TRIGGER ttt2 BEFORE INSERT ON io
FOR EACH ROW
IF NEW.qqq1<>0 THEN
SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
END IF;
总是提示:
MySQL 返回: #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 4
FOR EACH ROW
IF NEW.qqq1<>0 THEN
SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
END IF;
总是提示:
MySQL 返回: #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 4
mysql> CREATE TRIGGER ttt2 BEFORE INSERT ON io
-> FOR EACH ROW
-> IF NEW.qqq1<>0 THEN
-> SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
-> END IF;
-> //
Query OK, 0 rows affected (0.03 sec)mysql> delimiter ;
mysql>
delimiter $$
CREATE TRIGGER ttt2 BEFORE INSERT ON io
FOR EACH ROW
begin
IF NEW.qqq1<>0 THEN
SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
END IF;
end $$
delimiter ;
FOR EACH ROW
IF NEW.qqq1<>0 THEN
SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
END IF;
对,就是上面的代码,帮忙复制到phpMyAdmin里面执行试试吧
delimiter $$
CREATE TRIGGER ttt2 BEFORE INSERT ON io
FOR EACH ROW
begin
IF NEW.qqq1<>0 THEN
SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
END IF;
end $$
delimiter ;
create table ggg(qqq int, nnn int);DELIMITER $$
use `test`$$CREATE TRIGGER ttt2 BEFORE INSERT ON io
FOR EACH ROW
begin
IF NEW.qqq1<>0 THEN
SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
end if;
END 我这个可以在phpadmin里面跑的通的。
就是不行,上面的话到底什么意思啊
SQL 查询: CREATE TRIGGER ttt2 BEFORE INSERT ON io
FOR EACH
ROW
BEGIN
IF NEW.qqq1 <>0
THEN
SET NEW.qqq3 = ( SELECT qqq
FROM ggg
WHERE nnn = NEW.nnn ) + NEW.qqq1;MySQL 返回: #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 5 begin end 都加了,分号也有,就是通过不了,奇怪啦
mysql> use `test`;
Database changed
mysql>
mysql> CREATE TRIGGER ttt2 BEFORE INSERT ON io
-> FOR EACH ROW
-> begin
-> IF NEW.qqq1<>0 THEN
-> SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
ERROR 1064 (42000): 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 5
mysql> end if;
ERROR 1064 (42000): 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 i
f' at line 1
mysql> END
->
->
执行:
mysql>delimiter //
然后,再执行你那段create trigger
在该句末尾,另起一行,
输入
mysql>//
这样,trigger就会成功了。
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `test`.`wwww1` BEFORE INSERT
ON `test`.`io`
FOR EACH ROW BEGIN
IF NEW.qqq1<>0 THEN
SET NEW.qqq3 = (select qqq from ggg where nnn=NEW.nnn) + NEW.qqq1;
END IF;
END$$DELIMITER ;SQLyog真棒视图存储过程函数触发器全都列出来,清清楚楚,创建修改也有固定格式让用习惯图形界面的mssql的我用起来很方便呵呵,强力推荐