为了减少数据库连接的I/O开销,一般会把多条数据插入放在一条SQL语句中一次执行。
以前用Mysql做开发一直是这样用的:
INSERT INTO TABLE(col1, col2) VALUES(val11, val12), (val21, val22) ;
最近用SQLite才发现这个语法并非标准SQL,故而SQLite并不支持。经过一番查找,发现如下方法可以替代:
INSERT INTO TABLE(col1, col2) SELECT val11, val12 UNION ALL SELECT val21, val22 ;
这样的写法是属于复合SQL语句,表示先把两个SELECT的结果集进行无删减的联合,再把联合结果插入到TABLE中。
相关文章
- sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID
- 一条sql语句循环插入N条不同记录
- 求SQL语句:存在就跳过,不存在就插入记录,从字段ID=1开始,到字段ID=1某个值结束?
- 一条sql语句可以同时插入,删除两张表的数据么,怎么写(不用触发器,存储过程)
- mysql中一条insert语句批量插入多条记录
- SQL SERVER:一条SQL语句插入多条记录等
- 对两个表进行查询,过滤用户名重复的记录,插入一个新表.SQL语句怎么写?~
- 为什么sqlserver 批量插入多条记录只有一条记录插入成功
- Delphi中SQL批量插入记录
- 何用sql语句实现:将insert语句作为一个字段,插入到表格的一条记录之中