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

Insert Records from TableA to TableB using * when TableB missing one field

我有一个很大的 table 我正在尝试添加一个字段,到目前为止,由于我正在处理的 table 大小,它的效率要高得多

CREATE TABLE A LIKE B;
INSERT B SELECT * FROM A;

进行更改与进行任何Alter Table (索引、字段等)

但是如果我这样做

CREATE TABLE A LIKE B;
Alter TABLE B ADD Fieldx varchar(100);
INSERT B SELECT * FROM A;

我不能再这样做了,因为我发现字段数不匹配。显然我可以 "just" 做:

 CREATE TABLE A LIKE B;
 Alter TABLE B ADD Fieldx varchar(100);
 INSERT Into B(Field1,..,FieldN) SELECT Field1,...,FieldN FROM A;

但是我正在尝试用大量的 tables 来做到这一点,每个都有大量的字段,而且我已经有了一个很好的批处理过程,可以与 * 一起使用并且会很多更难尝试将每个 table 的每个字段显式推入每个 InsertSelect.

有什么表达方式吗

INSERT B SELECT * FROM A;

当 B 现在比 A 多 1 列时不会 return 计数错误?

只要将新列添加到原列的末尾即可:

INSERT INTO B
SELECT *, ""
FROM A;