SQLite中如何遍历集合批量插入数据?现有语句仅插入单行
在SQLite中批量插入多行数据的解决方法
嗨,我来帮你搞定这个问题!你当前的语句只插入一行的原因是:你用了一个标量子查询 (SELECT name FROM skill_point_type),如果skill_point_type表有多行数据,这种写法要么会触发SQLite报错(因为子查询返回了多个值,无法作为单个列的取值),要么只会返回第一行的name值,所以最终只插入了一条数据。
要实现为每个skill_point_type都插入一行数据,你只需要直接从skill_point_type表中查询数据,同时将固定值('hat'和0)作为另外两列的值即可,不需要嵌套子查询。正确的SQL语句如下:
INSERT INTO skill_points (skill_point_type_name, player_name, skill_points) SELECT name, 'hat', 0 FROM skill_point_type;
补充小提示:
- 如果只想插入
skill_point_type表中符合特定条件的记录,可以添加WHERE子句进行过滤,比如:INSERT INTO skill_points (skill_point_type_name, player_name, skill_points) SELECT name, 'hat', 0 FROM skill_point_type WHERE name IS NOT NULL; - 执行插入前,你可以先单独运行
SELECT name, 'hat', 0 FROM skill_point_type;来预览将要插入的数据,确认无误后再执行插入操作。
内容的提问来源于stack exchange,提问作者George R
相关产品推荐
相关产品推荐

