小赖子的英国生活和资讯

比较好的SQL插入语法

阅读 桌面完整版

SQL语法中用INSERT来向一个表格里插入数据, 比如一个表 table 有四列 A, B, C 和D 你就可以使用:

insert into table (`A`, `B`, `C`, `D`) values ('a', 'b', 'c', 'd')

或者 不需要指明 字段就可以更简洁:

insert into table values ('a', 'b', 'c', 'd')

不过这种的缺点就是你必须知道 默认的表格字段顺序 一旦顺序变了 就不行了 所以这种方法应该尽量避免.

MYSQL有另一种延展:

insert into table
set `A` = 'a', `B` = 'b', `C` = 'c'

这样的话 就类似 update 语句一样 可以分别对每个字段进行指定, 这种是比较好的方式, 比如最近我看到了一些历史遗留下来的代码, 在C++里将插入表格的查询语句写死了.

1
2
#define INSERT_QUERY "insert into TABLE values ('%s','%s',now(),'%d-%d-%d','%s','%s','%s','%s','%s',%d,%d,'%s',"\
        "'%0.2X-%0.2X-%0.2X-%0.2X-%0.2X-%0.2X','%s',1,0)"
#define INSERT_QUERY "insert into TABLE values ('%s','%s',now(),'%d-%d-%d','%s','%s','%s','%s','%s',%d,%d,'%s',"\
		"'%0.2X-%0.2X-%0.2X-%0.2X-%0.2X-%0.2X','%s',1,0)"

这样我就没法改后台数据库表的顺序和结构, 我想再添加一个无关痛痒的字段原来的查询语句都不能工作, 如果用成 insert set 就没有这样的问题.

英文: https://helloacm.com/better-sql-insert-syntax/

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version