繁体   English   中英

是否有任何理由使用INSERT INTO tbl_name()VALUES(); 语法,而不是SET col_name = col_value,…?

[英]Is there any reason to use INSERT INTO tbl_name () VALUES(); syntax instead of SET col_name = col_value,…?

我个人更喜欢使用以下语法:

INSERT INTO tab_name
SET
    col1 = value1,
    col2 = value2

我更喜欢这种语法,因为它可以让我完全控制列名和赋值之间的对应关系。 从我的角度来看,它看起来更好。

但是,Internet中(以及堆栈溢出中)的大多数示例和操作方法都使用INSERT VALUES语法,如下所示:

INSERT INTO tab_name (col1,col2) VALUES (value1,value2)

我同意可以稍短一些。 但是尽管如此,我几乎无法想象这将是多么方便。 尤其是如果插入(更新)列的数量超过3或4。如果我需要向查询中添加或从查询中排除一个或多个列,则很容易导致错误。

因此,问题是 :是否有理由在INSERT/UPDATE SET上使用INSERT/UPDATE () VALUES ()语法?

因为SET

INSERT INTO tab_name
SET
    col1 = value1,
    col2 = value2

不是SQL标准。

如果必须使用其他DBMS,则不能使用此语法。

第一个是SQL标准,第二个是MySQL的扩展。

还可以随时检查: MySQL INSERT INTO表VALUES .. vs INSERT INTO表SET

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM