【问题标题】:Is there any reason to use INSERT INTO tbl_name () VALUES(); syntax instead of SET col_name = col_value,...?是否有任何理由使用 INSERT INTO tbl_name () VALUES();语法而不是 SET col_name = col_value,...?
【发布时间】:2015-04-11 18:07:06
【问题描述】:

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

INSERT INTO tab_name
SET
    col1 = value1,
    col2 = value2

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

但是,互联网上(以及 Stack Overflow 上)的大多数示例和操作方法都使用如下 INSERT VALUES 语法:

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

我同意它可以稍微短一些。但尽管如此,我很难想象这会很方便。特别是如果插入(更新)列的数量超过 3 或 4。如果我需要在查询中添加或排除一列或多列,很容易导致错误。

所以问题是:有什么理由使用INSERT/UPDATE () VALUES () 语法而不是INSERT/UPDATE SET

【问题讨论】:

标签: mysql sql syntax insert


【解决方案1】:

因为 SET

INSERT INTO tab_name
SET
    col1 = value1,
    col2 = value2

不是 SQL 标准。

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

【讨论】:

    【解决方案2】:

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

    也请随意检查: MySQL INSERT INTO table VALUES.. vs INSERT INTO table SET

    【讨论】:

      猜你喜欢
      • 2014-09-01
      • 2010-10-26
      • 2012-07-06
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多