1

質問する前に、これに対する答えを読んで検索しました。ある MYSQL テーブルから 4 列を超える別の MYSQL テーブルに 4 列のデータをインポートしようとしています。私が期待したように私は得た

#1136 - 列数が行 1 の値数と一致しない'

この問題を回避するためのトリックを知っている人はいますか?

あとがき

私はすでに使用してみました

INSERT INTO new_table(colname1,colname2,colname3,colname4)
SELECT 'colname1','colname2','colname3,'colname4' FROM old_table;

エラーを生成する

1054 不明な列 'colname1' が 'field list' にあります

私も試してみました

INSERT INTO new_table 
SELECT 'colname1,'colname2,'colname3','colname4' 
FROM old_table;

エラーを生成する

#1136 列数が行 1 の値数と一致しない

4

3 に答える 3

3

列数が異なるテーブルを作成しようとしている場合はINSERT INTO、挿入する列を指定する必要があります。

したがって、20 列のテーブルがあり、1 列目、10 列目、15 列目、20 列目に挿入することがわかっている場合は、挿入でそれらの列に明示的に名前を付けます。

これに似ています:

INSERT INTO Table2 (col1, col10, col15, col20)
SELECT col1, col2, col3, col4
FROM Table1
于 2013-03-28T18:31:19.287 に答える
1

挿入する列を指定する必要があります

insert into destination_table (col1, col2, col3, col4)
select * from source_table

考えてみてください: DB エンジンは、どのソース列がどの宛先列に入力する必要があるかをどのように知る必要がありますか?

SQLFiddle デモ

アップデート

列名を囲む引用符を削除します

INSERT INTO new_table(colname1, colname2, colname3, colname4)
SELECT colname1, colname2, colname3, colname4 
FROM old_table;

列名をエスケープしたい場合は、`代わりにバッククォート ( ) を使用してください。

于 2013-03-28T18:31:41.527 に答える