ホームページ >データベース >mysql チュートリアル >MySQL エラー 1093 を解決する方法: FROM 句でターゲット テーブルを指定できませんか?
MySQL エラー 1093: FROM 句でターゲット テーブルを指定できません
で参照されているテーブルに対して更新クエリを実行しようとしたときFROM 句を使用すると、MySQL エラー 1093 が発生する可能性があります。これは、MySQL が選択に直接関係するテーブルの変更を禁止しているためです。 process.
もう 1 つの方法は、テーブルをそれ自体に結合するです。テーブルのエイリアスを作成すると、そこから複数回選択して、エラーを発生させずに元のテーブルを変更できます。
UPDATE tbl AS a INNER JOIN tbl AS b ON a.id = b.id SET a.col = b.col
別の解決策は、サブクエリを FROM 句のさらに深くネストすることです:
UPDATE tbl SET col = ( SELECT ... FROM (SELECT.... FROM) AS x);
この回避策は、サブクエリから暗黙的な一時テーブルを作成し、エラーなしで更新できるようにします。ただし、この方法はパフォーマンスに影響を与える可能性があります。
MySQL 5.7.6 以降では、オプティマイザーがサブクエリを最適化し、同じエラーが発生する可能性があることに注意することが重要です。この問題が発生した場合は、最適化を一時的に無効にすることを検討してください:
SET optimizer_switch = 'derived_merge=off';
以上がMySQL エラー 1093 を解決する方法: FROM 句でターゲット テーブルを指定できませんか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。