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
如果使用限定列名稱(包括表別名),會發生什麼? –
錯誤信息提示您沒有向我們展示函數的完整源代碼 –