如何在MySQL触发器中获取结果集
在如何在MySQL触发器中获取结果集,mysql,triggers,Mysql,Triggers,在插入之前的上,我正在尝试检查值。如果列为空,我希望加载默认值-基于单独表中的行。我想下面的代码可以满足我的需要,但我遇到了一个错误 不允许从已停止的触发器执行返回结果集 这是我的SQL,我假设它在抱怨我的select语句 delimiter | CREATE TRIGGER `trg_Sites_ID` BEFORE INSERT ON Sites FOR EACH ROW BEGIN SELECT @CA:=Palette0ColorA, @CB:=Palette0ColorB FRO
插入之前的上,我正在尝试检查值。如果列为空,我希望加载默认值-基于单独表中的行。我想下面的代码可以满足我的需要,但我遇到了一个错误
不允许从已停止的触发器执行返回结果集
这是我的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 ;
正如错误消息所暗示的那样,您的SELECT
正在尝试将数据返回到客户端。您可以改为使用:
正如错误消息所暗示的那样,您的SELECT
正在尝试将数据返回到客户端。您可以改为使用:
你更改了分隔符吗?贾斯汀先生,艾格雅尔的答案有效吗?你更改了分隔符吗?贾斯汀先生,艾格雅尔的答案有效吗?
SELECT Palette0ColorA, Palette0ColorB INTO @CA, @CB FROM Themes WHERE ID=NEW.ThemeID