我有兩個表的結構相同,但內容不同。每個表的第一列是一個自動增量ID。MYSQL如何獲得下一個自動增量時選擇插入
我想要做的是將一些行從一個表插入到另一個表中。但是,id列應該自動設置在目標表中,而不是從源複製。
到目前爲止,我使用的是這樣的:
INSERT INTO table_1
SELECT
id,
column_2,
column_3,
column_4
FROM table_2
WHERE column_4 = 'a value'
我不能只選擇如上圖所示,因爲這將創建表重複的ID 1.
我試圖取代「身份證從表2中的ID '與:(SELECT MAX(id)+1 FROM table_1) AS id
。這會得到正確的ID,但不會爲要插入的每一行增加它。
我已經試過(SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA_TABLES WHERE SCHEMA_TABLE = 'table_1') AS id
但只是失敗說「無法解析列AUTO_INCREMENT」
我已經試過LAST_INSERT_ID() as id
。這實際上是我第一次運行該語句,但進一步的嘗試失敗,消息'重複輸入875的密鑰PRIMARY'
最後,我試圖只留下列,但我然後得到一個錯誤消息說:列數不匹配。
任何人都可以對此有所瞭解嗎?我應該指出,我需要純粹的MySQL。我不在PHP的上下文中。
感謝
啊。有74列我希望避免這一點,但如果它有效,這沒什麼大不了的。感謝您的幫助 – Typhoon101
@ Typhoon101是的,它很容易變得非常麻煩。更好的一些其他引擎,你可以只查詢一個序列:/ –