我有2個表,它們的結構是相同的,但用於在2個不同的應用程序中提供服務。所以,他們每個人都有獨特的記錄(app1中的記錄不會存在於app2中)。但他們的ID由2個應用程序分開維護。所以,來自app1的id可能存在於app2中,但具有不同的信息。合併2個表與重疊的ID
我需要將這兩個表記錄合併到一個表中,因爲這兩個應用程序正在合併爲一個。問題在於ID。我可能會重置ID並重新生成每個記錄的唯一ID。這個ID不被其他表引用,所以重置它不是問題。但我不確定如何執行此操作。
我有2個表,它們的結構是相同的,但用於在2個不同的應用程序中提供服務。所以,他們每個人都有獨特的記錄(app1中的記錄不會存在於app2中)。但他們的ID由2個應用程序分開維護。所以,來自app1的id可能存在於app2中,但具有不同的信息。合併2個表與重疊的ID
我需要將這兩個表記錄合併到一個表中,因爲這兩個應用程序正在合併爲一個。問題在於ID。我可能會重置ID並重新生成每個記錄的唯一ID。這個ID不被其他表引用,所以重置它不是問題。但我不確定如何執行此操作。
使用自動增量(id)列創建表格。
然後創建一個INSERT ... SELECT查詢到每個表
如
INSERT INTO new_table(column1,column2,.....) -- ommiting the id column
SELECT column1,column2,... -- ommiting the id column
FROM old_table1
INSERT INTO new_table(column1,column2,.....) -- ommiting the id column
SELECT column1,column2,...-- ommiting the id column
FROM old_table2
導入數據因此,可能在APP 2 ,但不同的信息存在從APP1標識。
您可能希望查看的一個選項是using a view,以便以任何應用程序可接受的格式合併兩個表的數據。
INSERT INTO .. SELECT FROM
用於此處 - 沒有id
列。 ASLO,我會把一個APPLICATION_ID列到新表 - 只是爲了確保我知道什麼樣的數據從哪裏傳來:
INSERT INTO your_table(app_id, col1,co2,.....)
SELECT 1, col1,col2,...
FROM old_table1
對於應用程序2:
INSERT INTO your_table(app_id, col1,co2,.....)
SELECT 2, col1,col2,...
FROM old_table2
它甚至與工作'CREATE TABLE new_table AS SELECT * FROM old_tabe1',然後是第二個'INSERT'語句。它取決於'old_table1' /'old_table2'的當前結構。 –
這會做:)謝謝 – Sufendy
@MizardX你是對的。他也可以保留一張桌子,並從其他地方導入數據:) – niktrs