2010-07-28 43 views
9

Tôi đang tìm cách tạo nhiều chèn hàng khi tôi chỉ chèn dữ liệu cho một cột.MySQL: Nhiều Chèn cho một cột đơn

Dưới đây là ví dụ bảng:

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

Tôi muốn để có thể chèn một cái gì đó tương tự ('admin', 'giả', 'mod', 'sử dụng', 'khách') vào tên cho mỗi hàng.

Các tài liệu MySQL cho thấy nhiều chèn phải ở trong định dạng:

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

Tuy nhiên tuyên bố của tôi kết thúc lên tim như thế này:

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

Và tôi nhận được như sau:
ERROR 1136 (21S01): Số lượng cột không khớp với số lượng giá trị tại hàng 1

Có nghĩa là số lượng đó cho rằng tôi đang cố gắng làm một ngle chèn hàng.

Tôi không chắc chắn nếu tôi chỉ thiếu một cái gì đó đơn giản ở đây, nhưng tôi không thấy bất cứ điều gì đặc biệt trong tài liệu MySQL cho trường hợp sử dụng này.

Trả lời

18

cú pháp của bạn hơi lệch. đặt dấu ngoặc đơn xung quanh mỗi dữ liệu "set" (có nghĩa là một giá trị duy nhất trong trường hợp này) mà bạn đang cố chèn.

INSERT INTO User_Roll(name) VALUES ('admin'), ('author'), ('mod'), ('user'), ('guest'); 
+0

Ah, cảm ơn! Lần đầu tiên làm việc với cú pháp đa chèn. Tôi sẽ chấp nhận một khi nó cho phép tôi – tsgrasser

+1

bạn cũng nên lưu ý rằng điều này không hoạt động trong MSSQL. MySQL và một số khác hỗ trợ nhiều lần chèn, nhưng lần trước tôi đã sử dụng SQL Server, nó không chấp nhận cú pháp đó. –

+0

Tôi biết đây là một câu trả lời rất cũ, nhưng chỉ nghĩ rằng tôi muốn đề cập đến rằng kể từ phiên bản 2008, điều này cũng làm việc trong MSSQL. – user1751825

0

Tôi sẽ khuyên bạn Không nên đặt nhiều giá trị trong cột. tạo một bảng mới:

 INSERT INTO table_name (id, name) VALUES (1, 'name1'), (1, 'name2'), (1, 'name3'), (1, 'name4'); 
Các vấn đề liên quan