嘗試使用查詢在同一個MySQL 表中複製行時:
insert into table select * from table where primarykey=1
由於現有的主鍵約束,您可能會遇到重複輸入錯誤。雖然可以使用臨時表來規避此問題,但還有一個更簡單的解決方案。
使用以下受Leonard Challis 啟發的修改技術:
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1; UPDATE tmptable_1 SET primarykey = NULL; INSERT INTO table SELECT * FROM tmptable_1; DROP TEMPORARY TABLE IF EXISTS tmptable_1;
說明:
將主鍵設為 NULL,可以消除建立重複條目的風險。此外,在 INSERT INTO 語句末尾新增 LIMIT 1 可確保只插入一行。
將主鍵值附加到臨時表名稱是一種預防措施,以避免在插入多行時出現潛在衝突。同時複製。
以上是如何在 MySQL 中複製行而不出現重複條目錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!