[英]mysql trigger for loop
我正在尝试做一些mysql触发器编码。 每次遇到循环我都会失败。
CREATE TRIGGER `after_insert` AFTER INSERT ON `table_users`
FOR EACH ROW BEGIN
INSERT INTO table_user_plan (user_id, plan_id) VALUES
(NEW.id, (SELECT id FROM table_plans))
;
END
此处成功创建了触发器,但出现错误
#1242-子查询返回的行数超过1
我知道这行不通,因为table_plans中有多行...但是如果我想添加多行,如何处理该问题,或者如何进行循环并首先选择计划然后插入table_users中呢?
提前致谢
要基于SELECT
插入多行,可以使用INSERT ... SELECT FROM ...
语法。 在这种情况下,您将使用类似
INSERT INTO table_user_plan
SELECT NEW.id AS user_id, tp.id AS plan_id
FROM table_plans tp;
(尽管我从未真正尝试过在这种情况下使用NEW
,但我认为这应该可行。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.