1

我想将表A复制到表B中,INSERT ... SELECT而不在 MySQL 中声明所有字段。

但问题是我的表 B 在开头有一个自动增量字段,称为id

表_A

 name    age      etc
-------|--------|--------|
 abc   | 28     | ...    |

表_B

 id      name    age      etc
-------|-------|--------|--------|

我试图做类似的事情:

INSERT INTO table_B SELECT auto, * FROM table_A

但它没有用。什么是最好的解决方案?

4

2 回答 2

2

明确指定列名:

INSERT INTO table_B (name,age,etc) SELECT * FROM table_A

甚至

INSERT INTO table_B (name,age,etc) SELECT name,age,etc FROM table_A
于 2012-05-25T13:20:23.440 回答
0

从 Table_A 插入记录时,您无需担心在 Table_B 中为 id 列生成值。

因为Auto_Incerement列就像具有默认值的列。不同之处仅在于默认值从该列中最后插入的值增加了某个指定的间隔。

于 2012-05-25T13:24:07.477 回答