0
戻り値のない関数を作成して、主キーbill_keyに基づいてbillという名前のテーブル内のレコードを削除したいとします。列はbill_keyと呼ばれます。私が持っているコードは次のとおりです。PKをパラメータとして持つ行を削除する関数
CREATE OR REPLACE FUNCTION public.delete_bill(bill_key_to_delete bigint)
RETURNS void AS
$BODY$
begin
DELETE FROM bill
WHERE "bill_key" = bill_key_to_delete;
return;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
私は関数を呼び出す:
select delete_bill(2);
しかし、私は取得エラーメッセージは次のとおりです。テーブル名の別名を持つ
select delete_bill(2)
ERROR: column reference "bill_key" is ambiguous
LINE 2: WHERE "bill_key" = bill_key_to_delete
^
DETAIL: It could refer to either a PL/pgSQL variable or a table column.
QUERY: DELETE FROM bill
WHERE "bill_key" = bill_key_to_delete
CONTEXT: PL/pgSQL function delete_bill(bigint) line 2 at SQL statement
修飾された列名(テーブルエイリアスを含む)を使用するとどうなりますか? –
エラーメッセージは、あなたが私たちにあなたの関数の完全なソースを表示していないことを示唆しています –