11

単一の列のデータのみを挿入する場合に、複数の行を挿入する方法を探しています。

表の例を次に示します。

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | tinyint(4)  | NO   | PRI | NULL    | auto_increment | 
| name  | varchar(40) | NO   | UNI | NULL    |                | 
+-------+-------------+------+-----+---------+----------------+

各行の名前列に('admin'、'author'、'mod'、'user'、'guest')のようなものを挿入できるようにしたいと思います。

MySQLのドキュメントには、複数の挿入が次の形式である必要があることが示されています。

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

ただし、私のステートメントは次のようになります。

INSERT INTO User_Role(name) VALUES ('admin','author','mod','user','guest');

そして、次のようになります。
エラー1136(21S01):列数が行1の値数と一致しません

単一行の挿入を実行しようとしていると思われることを意味します。

ここで単純なものが欠落しているだけかどうかはわかりませんが、このユースケースのMySQLドキュメントには特に何も表示されません。

4

2 に答える 2

25

構文が少しずれています。挿入しようとしている各データ「セット」(この場合は単一の値を意味します)を括弧で囲みます。

INSERT INTO User_Roll(name) VALUES ('admin'), ('author'), ('mod'), ('user'), ('guest');
于 2010-07-28T18:55:12.410 に答える
1

列に複数の値を入れないようにアドバイスします。新しいテーブルを作成します。

     INSERT INTO table_name (id, name) VALUES (1, 'name1'), (1, 'name2'), (1, 'name3'), (1, 'name4');
于 2018-02-20T12:38:01.830 に答える