我正在为我的班级做一个项目,我们被告知要创建一个函数,该函数将删除与特定购物车编号有关的数据并更新产品表。该函数只有一个输入,即购物车编号。这是我所拥有的:
create function clear_cart(text) returns void as
$$
update products
set qtyonhand = qtyonhand + (select qty from cart where cart_id = $1)
where id in (select product_id from cart where cart_id = $1);
delete from cart where cart_id = $1;
$$ language sql;
我一直在通过直接将查询放入 psql 来测试查询,而我似乎无法解决的错误是:
set qtyonhand = qtyonhand + (select qty from cart where cart_id = $1)
它将多个值返回到一个只接受一个的字段中。我试过在别处寻找,但我不确定在哪里可以找到与我正在尝试做的类似的子查询。任何帮助,将不胜感激。
以防万一,这是项目所说的:
参数:cart_id 字符
回报:无
描述:从指定的购物车中删除所有物品。适当调整产品的库存数量。