我只是在为一个列插入数据时,正在寻找一种方法来进行多行插入.
这是示例表:
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | tinyint(4) | NO | PRI | NULL | auto_increment |
| name | varchar(40) | NO | UNI | NULL | |
+-------+-------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
我希望能够在每行的名称列中插入类似('admin','author','mod','user','guest')的内容.
MySQL文档显示多个插入应采用以下格式:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
Run Code Online (Sandbox Code Playgroud)
但是我的陈述最终看起来像这样:
INSERT INTO User_Role(name) VALUES ('admin','author','mod','user','guest');
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:
ERROR 1136(21S01):列数与第1行的值计数不匹配
这意味着它认为我正在尝试单行插入.
我不确定我是否只是在这里遗漏了一些简单的东西,但我没有在这个用例的MySQL文档中看到任何特别的东西.
DROP TABLE IF EXISTS student;
CREATE TABLE student(
bannerid VARCHAR(9) PRIMARY KEY NOT NULL ,
lastname VARCHAR(45) NOT NULL ,
firstname VARCHAR(45) NOT NULL ,
major VARCHAR(45) NOT NULL DEFAULT 'undeclared' ,
gpa DECIMAL(2) NOT NULL DEFAULT 0.00 ,
age INT NOT NULL DEFAULT 18 );
INSERT INTO student VALUES ('b00001111', 'smith', 'fred', 'computer science', 3.12, 20);
INSERT INTO student VALUES ('b00002222', 'jones', 'herb', 'computer science', 2.00, 19);
INSERT INTO student VALUES ('b00003333', 'chan', 'jackie', 'computer information systems', 3.50, 50); …
Run Code Online (Sandbox Code Playgroud) 查询:
INSERT INTO Customer2
VALUES (1, 'Mrs','Jill','Hill','2 Step St','Hillington','Uxbridge',
'Middx''UB10 8XY','020 8999 684') ;
Run Code Online (Sandbox Code Playgroud)