使用 insert SET 语法可以插入多行吗?

Par*_*pta 1 mysql sql insert

我在Using The INSERT INTO ... SET Syntax In MySQL博客中读到,您可以使用以下SET语法来插入记录。

例子:

INSERT INTO mytable SET col1= 'val1', col6= 'val6', col10='val10';
INSERT INTO mytable SET col3= 'val3', col5= 'val5', col10='val10';
INSERT INTO mytable SET col4= 'val4', col5= 'val5', col6='val6';
Run Code Online (Sandbox Code Playgroud)

是否可以仅用 1 条语句插入多行?

Nic*_*ick 5

不可以,该INSERT ... SET语法不能用于插入多行。如果您查看此处的INSERT ... SET语法,您会看到:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    SET assignment_list
    [ON DUPLICATE KEY UPDATE assignment_list]
Run Code Online (Sandbox Code Playgroud)

旁边:

assignment:
    col_name = value

assignment_list:
    assignment [, assignment] ...
Run Code Online (Sandbox Code Playgroud)

只能提供 1 assignment_list(值列表),因此只能插入一行。

对于询问和之间差异的问题的评论也表明了这一点。INSERT ... SETINSERT ... VALUES