You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决INSERT插入时子查询返回多行错误 批量插入全门店指定影片库存

报错原因

你编写的SQL报错是因为VALUES子句要求每个位置的表达式仅返回单行值,但(SELECT store_id from store)子查询返回了全部门店的多行store_id,无法匹配单行插入的逻辑。

正确写法

采用INSERT INTO ... SELECT语法直接批量生成插入数据,不需要使用VALUES子句:

INSERT INTO inventory (film_id, store_id)
SELECT 
    (SELECT film_id FROM film WHERE title = 'EUCLIDEAN PI'),
    store_id
FROM store;

语法说明

  • 该写法会遍历store表的所有有效store_id,每一条store记录都会自动匹配固定的EUCLIDEAN PI对应的film_id,自动生成N条库存记录(N为门店总数)
  • 无需关注store_id是否连续递增,所有store表中存在的门店都会完成库存插入
  • 如果film表的title字段没有唯一约束,为避免重名影片导致子查询返回多行报错,可以给film查询加上LIMIT 1:
INSERT INTO inventory (film_id, store_id)
SELECT 
    (SELECT film_id FROM film WHERE title = 'EUCLIDEAN PI' LIMIT 1),
    store_id
FROM store;

内容的提问来源于stack exchange,提问作者INeedHelp101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:15:05