当TableB缺少一个字段时,使用*将记录从TableA插入TableB

时间:2016-04-30 22:18:55

标签: mysql insert-into

我有一个大表,我正在尝试添加一个字段,到目前为止,由于我正在处理的表格大小,它的效率更高

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;

但是我试图用大量的表来做这个,每个表都有大量的字段,而且我已经有了一个很好的批处理过程,可以使用*并且更难以尝试显式推送每个表格的每个字段分为InsertSelect

有没有办法表达

INSERT B SELECT * FROM A;

当B现在比A更多一列而不会返回计数错误?

1 个答案:

答案 0 :(得分:0)

只要新列添加到原始列的末尾,您就可以执行以下操作:

INSERT INTO B
SELECT *, ""
FROM A;