回答

收藏

MySQL:单列多次插入

技术问答 技术问答 288 人阅读 | 0 人回复 | 2023-09-14

当我只为单个列插入数据时,我正在寻找一种进行多行插入的方法。
" }8 F/ L# J+ L7 f9 w这是示例表:9 S% K4 v2 ]! b& V/ i4 x
+-------+-------------+------+-----+---------+----------------+
% W. S4 Y: C$ |) v| Field | Type        | Null | Key | Default | Extra          |- D5 v/ R6 D( w" ^
+-------+-------------+------+-----+---------+----------------+1 ~1 b# T7 I# V4 T" c
| id    | tinyint(4)  | NO   | PRI | NULL    | auto_increment | * @; ^, J( `! o, h6 j
| name  | varchar(40) | NO   | UNI | NULL    |                | 6 }! Z2 w$ F& l. K/ ?
+-------+-------------+------+-----+---------+----------------+' p4 {  ^/ Z4 ]" A  Y) ?
我希望能够在每一行的名称列中插入类似(“ admin”,“ author”,“ mod”,“ user”,“ guest”)的内容。2 Z! \+ l0 l: q; r
MySQL文档显示多个插入应采用以下格式:. T( b# w, ]: Z$ O. y& u
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);# P4 v; Q% p# Y
但是我的声明最终看起来像这样:! h  l& ~$ o2 W+ _
INSERT INTO User_Role(name) VALUES ('admin','author','mod','user','guest');* y( x0 ^* e7 |# N
而且我得到以下信息:
- J8 k9 y! C4 r- q2 C* ~7 F错误1136(21S01):列计数与第1行的值计数不匹配) E0 \% b4 C' y2 R* L
这意味着它认为我正在尝试进行单行插入。2 y+ M! b. U- V
我不确定我是否只是在这里遗漏了一些简单的东西,但是在此用例的MySQL文档中我没有看到任何特别的东西。4 u& P1 @3 l2 T) {/ ?
                # j/ R' S  E! J6 l
解决方案:
9 |& j0 P4 g! K7 x0 ~) n; o                3 w9 j$ Z% l! \( E$ d
2 ^9 m% w' f! H- Q/ D" ^: S5 c
" w3 \4 E' n8 @/ d" S7 t/ n1 ^# H
                您的语法有点不对劲。在您要插入的每个数据“集合”(在这种情况下,指的是单个值)的周围加上括号。2 K( ^8 r3 F: z4 k
INSERT INTO User_Roll(name) VALUES ('admin'), ('author'), ('mod'), ('user'), ('guest');
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则