2012-05-23 149 views
1

我試圖在mySQL中創建一個觸發器,當我插入數據時,它將用另一個表中的數據更新一個列。更新表B的內容

我表:rtsEP_groups 帶:身份證,姓名

和表:rtsEP_users 有:ID,組(和其他的很多)

,我想在rtsEP_users更新 「組」,當rtsEP_users中有新插入時,使用來自rtsEP_groups的「id」,其中「name」是「Student」。

我正在研究這個觸發器,但不知道它是否正確,以及如何完成它。 如何更新右欄。

CREATE TRIGGER defaultGroup 
AFTER INSERT ON rtsEP_users 
BEGIN 
DECLARE _group_id INTEGER; 
SELECT id INTO _group_id FROM rtsEP_groups WHERE name = "Student" 
UPDATE rtsEP_users SET groups = _group_id WHERE 

回答

0

使用BEFORE INSERT,而不是AFTER,所以New是代表插入的行,你可以更新的。 試試這個

CREATE TRIGGER defaultGroup BEFORE INSERT ON rtsEP_users 
FOR EACH ROW 
SET New.groups = (SELECT id FROM rtsEP_groups WHERE name = "Student"); 
+0

#1064 - 你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,在第4行的''附近使用正確的語法 –

+0

@ChristianBekker可能是因爲[variable name](http://dev.mysql.com/doc/refman/5.0/)烯/用戶variables.html)。嘗試'@ group_id' –

+0

同樣的結果:/看起來很奇怪,它不會聲明變種 –