如何在 MySQL 中複製行而不出現重複條目錯誤?

Barbara Streisand
發布: 2024-11-14 21:50:02
原創
776 人瀏覽過

How to Duplicate Rows in MySQL Without a Duplicate Entry Error?

在MySQL 中複製行:替代解決方案

嘗試使用查詢在同一個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;
登入後複製

說明:

  1. 建立臨時表(tmptable_1) 並填充所需的內容要重複的行。
  2. 臨時表中的主鍵列設定為 NULL。這允許 MySQL 自動分配唯一值,避免任何鍵重複。
  3. 臨時表中的行將插入到原始表中。
  4. 然後刪除臨時表。

將主鍵設為 NULL,可以消除建立重複條目的風險。此外,在 INSERT INTO 語句末尾新增 LIMIT 1 可確保只插入一行。

將主鍵值附加到臨時表名稱是一種預防措施,以避免在插入多行時出現潛在衝突。同時複製。

以上是如何在 MySQL 中複製行而不出現重複條目錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板