CREATE TABLE table_test_trigger (
id INT(11) NOT NULL AUTO_INCREMENT,
a INT(11) DEFAULT NULL,
b INT(11) DEFAULT NULL,
c INT(11) DEFAULT NULL,
PRIMARY KEY (id)
);
DELIMITER $$
CREATE TRIGGER trigger1
BEFORE INSERT
ON table_test_trigger
FOR EACH ROW
BEGIN
SET NEW.c = NEW.a + NEW.b;
END
$$
我试过这段代码。
错误:
#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 6
答案 0 :(得分:1)
试试这个:
DELIMITER $$
CREATE
/*!50017 DEFINER = 'root'@'%' */
TRIGGER `trigger1` BEFORE INSERT ON `table_test_trigger`
FOR EACH ROW BEGIN
SET NEW.c = NEW.a + NEW.b;
END;
$$
DELIMITER ;
答案 1 :(得分:0)
它工作正常..触发器或表中没有错误。数据将被平稳地插入..!可能你在尝试之间给了一些额外的空间 ...只是看看那个
除此之外没有错误它很好......! (我在我的机器上试过它工作得很好..!)
做一件事只是整齐地把它拿到记事本中删除所有额外的空格或字符,如果你看到,然后粘贴到终端,它工作正常。
答案 2 :(得分:0)
脚本是正确的。您的MySQL客户端可能不支持分隔符。您的触发器只有一个语句,因此您可以省略BEGIN-END子句和DELIMITER命令。
CREATE TABLE table_test_trigger (
id INT(11) NOT NULL AUTO_INCREMENT,
a INT(11) DEFAULT NULL,
b INT(11) DEFAULT NULL,
c INT(11) DEFAULT NULL,
PRIMARY KEY (id)
);
CREATE TRIGGER trigger1
BEFORE INSERT
ON table_test_trigger
FOR EACH ROW
SET NEW.c = NEW.a + NEW.b;