4
我有两个表AUTHOR
和BOOK
由AUTHORID
连接。火鸟触发前删除
我需要创建一个触发器,以便在删除作者的情况下,首先删除该作者的书籍,然后删除作者。如果有人试图更新AUTHOR
中的AUTHORID
字段,它会自动更新AUTHORID
BOOK
。
那可以吗? :)
set term # ;
create trigger del for author
before delete or update as
declare variable aut int;
declare variable bok int;
begin
if(deleting) then
begin
delete from book where authorid=:aut;
delete from author where authorid=:aut;
end
if (updating) then
begin
update book set authorid=new.authorid;
end end#
set term ; #
TY答案,分配说,我必须做出一个触发器。你认为它可以完成吗?或者它是一个诡计问题? :D – user3112290
它可以用触发器完成,但它不会是多用户安全的解决方案,正确的方法是使用约束。既然它是一个shool赋值(?),我不会为你写触发器,我只说你需要一个'before delete'和一个'after update'触发器,语法见http://www.firebirdsql.org /file/documentation/reference_manuals/reference_material/html/langrefupd25-ddl-trigger.html – ain
@ain为什么触发器在约束条件下不安全?在一个实现级别上,Firebird中的约束由系统触发器检查(在带有外键目标的表上) –