資料庫的觸發器的使用

连师傅只会helloword發表於2024-07-14

需要實現在passenger中新增乘客資訊後,在classes(班次)中對應艙位的已售出票數+1
例:在passenger中新增了一個degree=“頭等艙”的乘客,就在classes中對應頭等艙已售出票數goodnumber+1 (經濟艙類似,對應secondnumber+1

實現方法:

在passenger表中增加觸發器,在新增passenger資料後,判斷其對應的艙位資訊degree,然後更新classes表中資料,完成更新

建立觸發器的語句

1 CREATE DEFINER = `root`@`localhost` TRIGGER `after_passenger_insert` AFTER INSERT ON `passenger` FOR EACH ROW BEGIN
2     UPDATE classes SET goodnumber=goodnumber+1 where classnumber=new.classnumber AND new.degree="頭等艙";
3 END;

在sql語句中,where後面所使用的條件均為classes中的資料,不帶new的屬於classes中的資料,帶有new的屬性為在passenger中新加入資料所帶有的屬性值(只有passenger表中才有degree)

相關文章