2012-05-31 79 views
1

BEFOREINSERT我試圖檢查值。如果列是空白的,我想要加載默認值 - 基於單獨表中的一行。我雖然像我的代碼下面會做我需要的東西,但我得到一個錯誤。如何獲得MySQL觸發器中的結果集

不允許從觸發器返回結果集執行停止!

這是我的SQL,我假設它抱怨我的select語句。

delimiter | 
CREATE TRIGGER `trg_Sites_ID` BEFORE INSERT ON Sites 
FOR EACH ROW 
BEGIN 
    SELECT @CA:=Palette0ColorA, @CB:=Palette0ColorB FROM Themes WHERE ID=NEW.ThemeID; 
    SET NEW.ID = UUID(); 
    SET NEW.ColorA = IF(NEW.ColorA = '', @CA, NEW.ColorA); 
    SET NEW.ColorB = IF(NEW.ColorB = '', @CB, NEW.ColorB); 
END 
| 
delimiter ; 
+0

您是否更改了分隔符? – jcho360

+0

是的,我會添加這些行 – Justin808

+0

賈斯汀先生,做eggyal的答案工作? – beck03076

回答

1

SELECT,隨着錯誤消息意味着,試圖將數據返回給客戶端。您可以改爲使用SELECT ... INTO

SELECT Palette0ColorA, Palette0ColorB INTO @CA, @CB FROM Themes WHERE ID=NEW.ThemeID 
+0

這個技巧。謝謝 – Justin808