当我只为单个列插入数据时,我正在寻找一种进行多行插入的方法。

这是示例表:

+-------+-------------+------+-----+---------+----------------+
| 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文档中我没有看到任何特别的东西。

最佳答案

您的语法有点不对劲。在您要插入的每个数据“集合”(在这种情况下,指的是单个值)的周围加上括号。

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

关于sql - MySQL:单列多次插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3356317/

10-12 00:36
查看更多