私はクラスのプロジェクトに取り組んでおり、特定のカート番号に関連するデータを削除して製品テーブルを更新する関数を作成するように指示されました。この関数には、カート番号という1つの入力しかありません。これが私が持っているものです:
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)
1つだけを受け入れるフィールドに複数の値を返します。他の場所を探してみましたが、自分がやろうとしていることに似たサブクエリをどこで見つけることができるかわかりません。どんな助けでもいただければ幸いです。
念のため、プロジェクトの内容は次のとおりです。
パラメータ:cart_id char
戻り値:なし
説明:指定されたカートからすべてのアイテムを削除します。製品の在庫数量を適切に調整してください。