2013-04-10 112 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 ;