条件付き一致を使用したテーブル間のデータの移動
SQL ステートメントを使用すると、特定の基準に基づいて、あるテーブルから別のテーブルにデータを効率的に転送できます。この場合、ユーザー名が「X」、パスワードが「X」である、一致するすべての行を Table1 から Table2 に移動します。
トランザクションベースのアプローチ
最も信頼性の高い方法は、トランザクションを使用して、両方の操作 (Table2 への挿入と Table1 からの削除) が単一の作業単位として実行されるようにすることです。トランザクションは、両方の操作が成功するか、どちらの操作も適用されないことを保証することによって、データの整合性を保証します。
SQL ステートメント
次の SQL ステートメントは、トランザクションを使用して、目標:
BEGIN TRANSACTION; INSERT INTO Table2 (column1, column2, ...) SELECT column1, column2, ... FROM Table1 WHERE username = 'X' AND password = 'X'; DELETE FROM Table1 WHERE username = 'X' AND password = 'X'; COMMIT;
説明
追加の考慮事項
トランザクション中に新しい一致する行が Table1 に挿入されないようにする場合は、次のようにします。 NOT EXISTS 演算子を使用して、INSERT ステートメントに追加の条件を追加できます。
INSERT INTO Table2 (column1, column2, ...) SELECT column1, column2, ... FROM Table1 WHERE username = 'X' AND password = 'X' AND NOT EXISTS (SELECT 1 FROM Table2 WHERE username = 'X' AND password = 'X');
This一意の一致する行のみが Table2 に挿入されるようにします。
以上が条件一致に基づいて SQL テーブル間でデータを効率的に移動するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。