MySQLのreturning句と同等の質問

MySQLのreturning句と同等の質問

私はMySqlの完全な初心者なので、優しくしてください。

RETURNINGOracle の句やSQL Server のテーブルに相当するものがInserted'/'DeletedMySQL にありますか? 私がやりたいことは次のとおりです。

  • テーブルAから行セットを削除する
  • 削除した行セットをテーブル B に挿入します。

    助けてください!

ありがとう

ベストアンサー1

残念ながら、挿入と削除の両方を行うことはできません。1つのクエリ、しかし、あなたはそれをすべて1つで行うことができます取引トランザクション ストア エンジン (InnoDB など) を使用している場合。さらに、はOracle と PostgreSQL ではサポートされていますが、MySQL ではサポートされていないため、別のステートメントとステートメントRETURNINGを記述する必要があります。deleteinsert

ただし、トランザクションを使用すると、正常にコピーされたデータのみが tableA から削除されることが保証されます。次の点を考慮してください。

begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;

おすすめ記事