使用 mysql,圖書管理,問題涉及兩張表,books 和 lender
問題來了:
#建立一個觸發器想要實現借書自增數量/還書自減,但是我寫的觸發器並不能實現這個功能,最後的amount 並沒有變化(表中有的amount 是我手動輸入的)
在books 被借閱屬性islend 更新時在lender 表中同時更新借書數量amount,其中
islend 屬性更新後保存的是藉閱人lender 的id,lender 中id 是主鍵,books 表中islend 是外鍵,連接這兩張表。
兩個資料庫表結構在下方給出,目前寫的觸發器如下:
CREATE TRIGGER returnBook
AFTER UPDATE ON books
FOR EACH ROW
BEGIN
UPDATE lender
SET amount = lender.amount - 1
WHERE id = new.isLend;
END
lender 表結構如下:
#books 表結構如下:
#測試語句
String sql = "UPDATE books SET isLend=?,date=NULL WHERE bookId=? AND isLend=?";
try {
ps = conn.prepareStatement(sql);
ps.setString(1, "1");
ps.setString(2, String.valueOf(bookId));
ps.setString(3, String.valueOf(id));
row = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
可以正常實作借/還書功能,但是觸發器的功能並沒有實作
我想大声告诉你2017-06-28 09:25:33
觸發器本身沒什麼問題,除了要注意 @凌晨消失の夏日[lingchenxiaoshixiari] 說的null的問題
可以在觸發器中增加一個類似日誌的表,看是否觸發器執行過