这里是我会做:
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代码? (或其他代码)? –