这里是我会做的:

CREATE TABLE newtable LIKE oldtable;

ALTER TABLE newtable ADD COLUMN columnname INT(10) UNSIGNED NOT NULL DEFAULT 0;

我不知道你的列的类型。我给一个例子与INT。现在这里你可以指定WHERE你想添加这个新的列。默认情况下,它会将它添加到末尾,除非你指定AFTER关键字,如果你提供它,你将不得不在你将插入的顺序指定,否则你需要把它放在结尾。

INSERT INTO newtable SELECT field1, field2, field3 /*etc...*/, newcolumn = 0 FROM oldtable;

OR,如果您在列之间添加它:

# 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;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐