透過條件匹配在表之間移動資料
您可以使用SQL 語句根據特定條件有效地將資料從一個表傳輸到另一個表。在本例中,您希望將所有符合行從 Table1 移至 Table2,其中使用者名稱等於「X」且密碼等於「X」。
基於事務的方法
最可靠的方法涉及使用事務來確保這兩個操作(插入表2 和從表1 中刪除)作為單一工作單元發生。事務透過確保兩個操作都成功或都不應用來保證資料完整性。
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');
這可確保僅將唯一符合的行插入 Table2 中。
以上是如何基於條件匹配在SQL表之間高效移動資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!