1

此代码应该删除一个相册,但我不知道为什么它仍然不起作用

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
4

1 回答 1

1

在语句中使用存储过程参数或变量时,必须在参数或变量名称前加上冒号:

在删除语句中

delete from album where album.id = id_album

Firebird 解析器会考虑id_album一个列名,并且表中不存在这样的列album。这就是你得到错误的原因。

要表示它是存储过程变量或参数,请使用以下前缀:

delete from album where album.id = :id_album
于 2020-01-10T09:52:11.253 回答