MySQL で Update 文の中でサブクエリを使うと、You can’t specify target table ~ for update in FROM clause というエラーメッセージが出ることがあります。サブクエリの中で更新するテーブルを読んでいるような場合に発生します。たとえば update temp_table set num = (select max(num) +1 from temp_table) where num=1; ERROR 1093 (HY000): You can't specify target table 'temp_table' for update in FROM clause PostgreSQL や Oracle ではこのようなエラーは起きずに更新が完了します。対処方法としてはテンポラリテーブルを使うか MySQL をやめること。テンポラ