在 MySQL 中複製行:明確列選擇的替代方法
在 MySQL 中,通常需要快速有效地複製表格行。常見的方法包括使用“SELECT *”提取行資料並將其插入回同一個表中。然而,對於包含大量列的表,此方法變得笨拙。
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,允許 MySQL 在插入期間產生新值。為了確保檢索到單行,可以在 INSERT INTO 語句中加入「LIMIT 1」。
為了進一步確保只插入預期的行,應將主鍵值附加到臨時表名稱如程式碼片段中所示。該技術簡化了行複製過程,無需明確選擇列,使其成為管理 MySQL 中大型表的寶貴工具。
以上是如何在不明確選擇列的情況下克隆 MySQL 中的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!