如何在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