在MySql 5.5.27中创建触发器时出错 [英] Error when creating a trigger in MySql 5.5.27
本文介绍了在MySql 5.5.27中创建触发器时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要在xampp中创建一个触发器.
I am going create a trigger in xampp.
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW
BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END;
但是我有错误:
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH
ROW
BEGIN
INSERT INTO test2
SET a2 = NEW.a1;
MySQL said: Documentation
#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
之前,我创建了4个表:
Before, i create 4 table:
CREATE TABLE test1(a1 INT);
CREATE TABLE test2(a2 INT);
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE test4(
a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
b4 INT DEFAULT 0
);
请帮助我.非常感谢您!
Please help me. Thank you alot!
推荐答案
使用以下内容创建触发器
Use following for creating trigger
delimiter |
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW
BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END;
|
也就是说,您必须使用定界符.
That is... you must use delimiter..
定界符用于定义查询的结尾.默认情况下,它是semicolumn(;).在这里,我们使用DELIMITER命令来更改默认的定界符,以便我们可以使用';'独立触发定义
Delimiter is used to define the end of the query. By default it is semicolumn(;). Here we used DELIMITER command to change the default delimiter so that we can use ';' insdie trigger definition
这篇关于在MySql 5.5.27中创建触发器时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文