Java – Trigger zum gleichzeitigen Aktualisieren von zwei Tabellen
高洛峰
高洛峰 2017-06-28 09:23:33
0
2
879

Bei Verwendung von MySQL, Buchverwaltung, betrifft das Problem zwei Tabellen, Bücher und Kreditgeber

Hier kommt die Frage:

Erstellen Sie einen Auslöser, um die automatische Erhöhung der ausgeliehenen Bücher/Verringerung der zurückgegebenen Bücher zu realisieren, aber der von mir geschriebene Auslöser kann diese Funktion nicht realisieren und der Endbetrag hat sich nicht geändert (einige Beträge in der Tabelle wurden von mir manuell eingegeben)

Wenn Bücher ausgeliehen werden und das Inselattribut aktualisiert wird, wird gleichzeitig die Anzahl der ausgeliehenen Bücher in der Leihgebertabelle aktualisiert.
Nach der Aktualisierung des Inselattributs wird die ID des Entleihers gespeichert Der Primärschlüssel und die Insel in der Buchtabelle sind der Fremdschlüssel. Die Verbindung dieser beiden Tabellen.

Die beiden Datenbanktabellenstrukturen sind unten aufgeführt. Die derzeit geschriebenen Trigger lauten wie folgt:

CREATE TRIGGER returnBook
AFTER UPDATE ON books
FOR EACH ROW
BEGIN
UPDATE lender
SET amount = lender.amount - 1
WHERE id = new.isLend;
END

Die Struktur der Rendertabelle ist wie folgt:

Die Struktur der Büchertabelle ist wie folgt:

Test-Anweisung
String sql = „UPDATE Bücher 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();
    }

Die Ausleih-/Rückgabefunktion kann normal implementiert werden, die Triggerfunktion ist jedoch nicht implementiert

高洛峰
高洛峰

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

Antworte allen(2)
学霸
CREATE TRIGGER lendBook
AFTER UPDATE ON books
FOR EACH ROW
BEGIN
sql语句1;
sql语句2;
END
我想大声告诉你

触发器本身没什么问题,除了要注意 @凌晨消失の夏日[lingchenxiaoshixiari] 说的null的问题

可以在触发器中增加一个类似日志的表,看是否触发器执行过

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage