2015-02-11 28 views
-1

我个人更喜欢使用的语法如下:是否有任何理由使用INSERT INTO tbl_name()VALUES();语法而不是SET col_name = col_value,...?

INSERT INTO tab_name 
SET 
    col1 = value1, 
    col2 = value2 

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

然而,大多数的在互联网(以及在堆栈溢出以及)的例子和HOWTO的使用插入值如下语法:

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

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

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

+2

的可能重复[MySQL的INSERT INTO表值.. VS INSERT INTO表SET](http://stackoverflow.com/questions/861722/mysql-insert-into -table值-VS-嵌件成表设置) – serakfalcon 2015-02-11 11:31:52

回答

4

由于SET

INSERT INTO tab_name 
SET 
    col1 = value1, 
    col2 = value2 

不是SQL标准。如果您不得不使用其他DBMS,则不能使用此语法。

相关问题