這裏是我會做:
CREATE TABLE newtable LIKE oldtable;
ALTER TABLE newtable ADD COLUMN columnname INT(10) UNSIGNED NOT NULL DEFAULT 0;
我不知道你列的類型。我以INT爲例。現在,您可以在此指定要添加此新列的位置。默認情況下,它會在最後加上它,除非你指定了AFTER關鍵字,如果你提供它,你將不得不按照你要插入的順序指定,否則你需要把它放在最後。
INSERT INTO newtable SELECT field1, field2, field3 /*etc...*/, newcolumn = 0 FROM oldtable;
,或者,如果你列之間添加它:
# eg: ALTER TABLE newtable ADD COLUMN columnname INT(10) UNSIGNED NULL AFTER field2;
INSERT INTO newtable SELECT field1, field2, newcolumn = 0, field3 /*etc...*/ FROM oldtable;
,如果你想要做他們批您可以添加一個where子句。
一旦所有的記錄都是有
DROP TABLE oldtable;
RENAME TABLE newtable to oldtable;
是不斷讀表嗎?它是一個合併表? –
這是一個常規的桌子。閱讀數據沒有問題。 – Drew
這個表是用在很多mysql程序中的嗎? php代碼? (或其他代碼)? –