Я хочу создать функцию без возвращаемого значения, чтобы удалить запись в таблице с именем bill на основе первичного ключа bill_key. Столбец называется 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
Что произойдет, если вы используете квалифицированное имя столбца (включая псевдоним таблицы)? –
Сообщение об ошибке предполагает, что вы не показываете нам полный источник вашей функции. –