编辑我没有 CREATE TEMPORARY TABLE 权限。还有其他方法吗?
MySQL 数据库有一个User
包含id
列的表。
另一个表UserThing
有一个user
列,它是一个外键User.id
我正在尝试将一行插入UserThing
中的某些行User
,就像这样。
INSERT INTO `UserThing` (`user`, `foo`, `bar`)
SELECT `id`, 123, 456 FROM `User` WHERE some_condition;
我很确定这没问题,只是有一个触发器UserThing
可能会更新User
. 这会创建一个 MySql 不允许的依赖循环,尽管我知道这个触发器的操作是正交的,some_condition
所以在实践中并不重要。
我知道我可以SELECT @some_var := ...
为单个值编写,但我不能让它为多个值工作。局部变量是解决此问题的正确方法吗?如果是这样,请问语法是什么?如果没有,是否有其他纯 SQL 方法可以做到这一点?