«Столбец не принадлежит ссылочной таблице» Почему? - PullRequest
1 голос
/ 10 января 2020

Этот код должен удалить альбом, но я не знаю, почему он все еще не работает

declare variable al_eliminare integer;
begin
    select count(album.id) from album where id = :id_album
    into :al_eliminare;
    if(al_eliminare = 0)
        then delete from album where album.id = id_album;
  suspend;
end

1 Ответ

1 голос
/ 10 января 2020

При использовании параметров или переменных хранимой процедуры в операторе вы должны ставить перед параметром или именем переменной двоеточие :.

В операторе удаления

delete from album where album.id = id_album

Firebird Парсер будет считать id_album именем столбца, и в таблице album такого столбца не существует. Вот почему вы получаете сообщение об ошибке.

Чтобы указать, что это переменная или параметр хранимой процедуры, добавьте префикс ::

delete from album where album.id = :id_album
...