我有一个大表,我正在尝试添加一个字段,到目前为止,由于我正在处理的表格大小,它的效率更高
CREATE TABLE A LIKE B;
INSERT B SELECT * FROM A;
进行更改时与执行任何Alter Table (
索引,FIelds等。)
但是,如果我这样做
CREATE TABLE A LIKE B;
Alter TABLE B ADD Fieldx varchar(100);
INSERT B SELECT * FROM A;
我不能再这样做,因为我得到了字段数不匹配。显然,我可以“做”:
CREATE TABLE A LIKE B;
Alter TABLE B ADD Fieldx varchar(100);
INSERT Into B(Field1,..,FieldN) SELECT Field1,...,FieldN FROM A;
但是我试图用大量的表来做这个,每个表都有大量的字段,而且我已经有了一个很好的批处理过程,可以使用*并且更难以尝试显式推送每个表格的每个字段分为Insert
和Select
。
有没有办法表达
INSERT B SELECT * FROM A;
当B现在比A更多一列而不会返回计数错误?
答案 0 :(得分:0)
只要新列添加到原始列的末尾,您就可以执行以下操作:
INSERT INTO B
SELECT *, ""
FROM A;