1

MySQL ですべてのフィールドを宣言せずに、テーブルAをテーブルBにコピーしたいと考えています。INSERT ... SELECT

しかし問題は、テーブル B の先頭に次の自動インクリメント フィールドがあることidです。

table_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 に答える