2013-05-05 191 views
0

我試圖創建一個觸發器,使用兩個不同表中的值插入新表(我使用的是MySQL 5.5.27)。嘗試從mysql觸發器插入時出現語法錯誤

當我嘗試這個時出現語法錯誤,但看不到錯誤在哪裏。

DECLARE _Token VARCHAR(255); 
SELECT token INTO _Token FROM appusers ON username = NEW.username; 
INSERT INTO queue (token, message) VALUES (_Token, NEW.milestone); 

我的假設是,它並沒有像DECLARE因爲當我使用下面我得到消息_Token是一個未聲明的變量。

SELECT token INTO _Token FROM appusers ON username = NEW.username; 
INSERT INTO queue (token, message) VALUES (_Token, NEW.milestone); 

回答

2

嘗試用一個單一的INSERT語句

INSERT INTO queue (token, message) 
SELECT token, NEW.milestone 
    FROM appusers 
WHERE username = NEW.username;