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中的約束由系統觸發器檢查(在帶有外鍵目標的表上) –