EDIT CREATE TEMPORARY TABLE 権限がありません。別の方法はありますか?
MySQL データベースにはUser
、列を含むテーブルがありid
ます。
別のテーブルには、外部キーでUserThing
ある列がありますuser
User.id
UserThing
このように、特定の行に対して1行を挿入しようとして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 の方法はありますか?