2012-05-23 151 views
0

我正在對我的網站進行第一次巨型更新。它有一個現有的職位表。如果我在表格中添加兩列,我是否能夠將舊數據導入到更新後的表格中?MySQL - 將列添加到表?

編輯:我的意思是列。哎呦。

+1

你的意思是兩列嗎? – Bruno

+1

當你說「添加兩行」時,你的意思是兩列**嗎?換句話說,所以更新後的表具有比導入數據更多的字段? –

+0

取決於轉儲是如何完成的。它可能會「刪除」刪除任何現有表的說明。 –

回答

4

你的意思是兩列?如果它們可以爲空,那麼您應該能夠導入不包含這些列的舊數據。您只需要仔細編寫插入語句,確保指定要插入的確切列。這是一個很好的做法,無論如何都應該完成(感謝布魯諾的提示)。

例子:

INSERT INTO table1 (Col1, Col2, Col3) 
SELECT Col1, Col2, Col3 
FROM sourceTable 

而不是

INSERT INTO table1 
SELECT * 
FROM sourceTable 

如果兩個新列不可爲空,那麼你可以嘗試使用附加的文字只是爲了讓插入到工作的一些假數據。

例子:

INSERT INTO table1 (Col1, Col2, Col3, NewCol1, NewCol2) 
SELECT Col1, Col2, Col3, '', '' 
FROM oldDataTable 

或者你可以創建一個默認的約束,這將很好的工作。

+0

不需要空值,具有默認值也可能有用。 (而且我會說在'insert'中指定列名是* always總是一個好主意。) – Bruno

+0

如果沒有默認約束並且列是不可空的,那麼他的插入將失敗,除非他添加了像我的例子。 –

+1

是的,這就是我所說的,可以爲空或默認值都可以工作,而不僅僅是可以爲空。 – Bruno

0

首先導入數據,然後添加新列。 或者你可以插入兩列,注意它們不能爲空,然後導入舊數據

0

我假設你的意思是如果你添加兩列到表中?

是的,您應該能夠使用INSERT語句插入現有數據,因爲新列可以爲空或您爲這些列設置默認值。