java - 觸發器使兩個表同時更新
高洛峰
高洛峰 2017-06-28 09:23:33
0
2
927

使用 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();
    }

可以正常實作借/還書功能,但是觸發器的功能並沒有實作

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(2)
学霸

雷雷

我想大声告诉你

觸發器本身沒什麼問題,除了要注意 @凌晨消失の夏日[lingchenxiaoshixiari] 說的null的問題

可以在觸發器中增加一個類似日誌的表,看是否觸發器執行過

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板