使 SQL INSERT 语句更易于阅读

我正在用 Go 编写一个程序,它大量使用 MySQL。为了可读性,是否可以在 INSERT 语句中的每个列名之后包含列的值?喜欢:

INSERT INTO `table` (`column1` = 'value1', `column2` = 'value2'...);

代替

INSERT INTO `table` (`column`, `column2`,...) VALUES('value1', 'value2'...);

以便更容易查看哪个值与哪个列相关联,考虑到 SQL 字符串通常会变得相当长


千万里不及你
浏览 198回答 3
3回答

守着星空守着你

不,您不能使用您建议的语法(尽管它会很好)。一种方法是排列列名和值:INSERT INTO `table` (`column`, `column2`,...) VALUES('value1', 'value2'...);更新响应您的评论“语句包含来自字符串外部的变量”:如果您参数化您的 SQL 语句,那么将列名与变量匹配很容易检查参数是否为其各自的列命名:@ColumnName。这实际上是我在 TSQL 脚本中的做法:INSERT INTO `table` (    `column`,     `column2`,    ...) VALUES(    'value1',     'value2',    ...);(将逗号放在行首也很常见)但老实说,一旦你得到足够多的列,很容易混淆列的位置。如果它们具有相同的类型(和相似的值范围),您可能不会立即注意到......

隔江千里

虽然这个问题有点老,但我会把它放在这里供未来的研究人员使用。我建议使用 SET 语法而不是丑陋的 VALUES 列表语法。INSERT INTO tableSETcolumn1 = 'value1',column2 = 'value2';恕我直言,这是 MySQL 中最干净的方式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go