2013-04-10 61 views
1

我有一个与在phpmyadmin上创建触发器有关的问题。 我有一个简单的代码,就像下面这个代码一样,当我提交代码时,返回变量x声明行中的一个sintax错误。我知道SELECT查询的工作原理是因为我测试了它,并返回一个字符串。谁能帮我?提前致谢。触发器创建不起作用

DELIMITER $$ 

CREATE TRIGGER `after_assigntags_insert` AFTER INSERT ON `assigntags` 
FOR EACH ROW 
BEGIN 
DECLARE x VARCHAR(10); 
SET x = (SELECT UltLabel FROM assignlabels WHERE ALmessage=1); 
INSERT INTO messages (Message) VALUES (x); 
$$ 
END 

DELIMITER ; 

回答

0

这是一个语法错误,

END您delimter $$之前应该来。

尝试这样:

DELIMITER $$ 

CREATE TRIGGER `after_assigntags_insert` AFTER INSERT ON `assigntags` 
FOR EACH ROW 
BEGIN 
DECLARE x VARCHAR(10); 
SET x = (SELECT UltLabel FROM assignlabels WHERE ALmessage=1); 
INSERT INTO messages (Message) VALUES (x); 
END 
$$ 

DELIMITER ; 
+0

它的工作原理!谢谢。 – Falcoa 2013-04-10 14:24:09

0

如何使用user variables

DELIMITER $$ 

CREATE TRIGGER `after_assigntags_insert` AFTER INSERT ON `assigntags` 
FOR EACH ROW 
BEGIN 
    SET @x = (SELECT UltLabel FROM assignlabels WHERE ALmessage=1 LIMIT 1); 
    INSERT INTO messages (Message) VALUES (@x); 
$$ 
END 

DELIMITER ; 
0

我觉得BEGIN来后DECLARE

DELIMITER $$ 

CREATE TRIGGER `after_assigntags_insert` AFTER INSERT ON `assigntags` 
FOR EACH ROW 

DECLARE 
    x VARCHAR(10); 
BEGIN 
    SET x = (SELECT UltLabel FROM assignlabels WHERE ALmessage=1); 
    INSERT INTO messages (Message) VALUES (x); 
    $$ 
END 

DELIMITER ;