我正在尝试创建一个插入触发器,它将从表A中获取两个字符串字段(x和y),并将它们连接成表B中的单个字段。如果y不为空,我想在连接时在x和y之间添加一个“ - ”。到目前为止,我的代码看起来像这样:
BEGIN
INSERT INTO B(xy,z)
SELECT y,z,
CASE WHEN y IS NOT NULL then concat('some prefix',x,' - ',y)
ELSE concat('some prefix',x)
END
FROM(SELECT NEW.x, NEW.y NEW.z) as n;
WHERE [some conditions]
RETURN NEW;
END;
据我理解,在B表的xy字段中应该放置“一些前缀x-y”或“一些前缀x”,并将A表的z放置在B表的z中,但我收到了“插入的表达式比目标列多”的错误提示。有人知道我做错了什么吗?