首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中使用 INSERT INTO...SELECT 正確地將所有列從一個表插入到另一個表?

如何在 MySQL 中使用 INSERT INTO...SELECT 正確地將所有列從一個表插入到另一個表?

DDD
發布: 2024-12-07 19:57:13
原創
471 人瀏覽過

How to Correctly Insert All Columns from One Table to Another in MySQL Using INSERT INTO...SELECT?

使用INSERT INTO...SELECT 將所有列插入目標表

使用下列指令將資料從this_table 複製到this_table_archive 時遇到困難使用通配符(*) 選擇的INSERT INTO 語句。讓我們排查問題並找到可行的解決方案。

錯誤在於使用 (*) 來選取所有欄位而不指定列名。正如 MySQL 手冊中詳述的,正確的語法要求您明確列出列名稱。

以下是正確的程式碼:

INSERT INTO this_table_archive (col1, col2, ..., coln)
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00';
登入後複製

取代 col1, col2, ..., coln與表中實際的列名。

關於 id 列,如果兩個表都有自增 id 且資料已存在於其中表,您可以考慮在查詢的列列表中省略 id 以避免潛在的重複鍵衝突。

對於空目標表,此省略不會導致任何問題。但是,對於包含資料的表,排除 id 列將確保為複製的行產生新的、唯一的 ID。

以上是如何在 MySQL 中使用 INSERT INTO...SELECT 正確地將所有列從一個表插入到另一個表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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