java - déclencheur pour mettre à jour deux tables en même temps
高洛峰
高洛峰 2017-06-28 09:23:33
0
2
901

En utilisant MySQL, gestion des livres, le problème implique deux tables, livres et prêteur

Voici la question :

Créez un déclencheur pour réaliser l'incrémentation automatique des livres empruntés/diminution des livres restitués, mais le déclencheur que j'ai écrit ne peut pas réaliser cette fonction, et le montant final n'a pas changé (certains montants dans le tableau ont été saisis manuellement par moi)

Lorsque les livres sont empruntés et que l'attribut islend est mis à jour, le nombre de livres empruntés est mis à jour en même temps dans le tableau du prêteur.
Une fois l'attribut islend mis à jour, il enregistre l'identifiant de l'emprunteur, l'identifiant du prêteur est. la clé primaire, et l'islend dans la table books est la clé étrangère La connexion entre ces deux tables.

Les deux structures de tables de base de données sont données ci-dessous. Les déclencheurs actuellement écrits sont les suivants :

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

La structure de la table de rendu est la suivante :

La structure de la table des livres est la suivante :

Déclaration de test
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();
    }

La fonction emprunt/retour peut être implémentée normalement, mais la fonction de déclenchement n'est pas implémentée

高洛峰
高洛峰

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

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

Il n'y a rien de mal avec le déclencheur lui-même, sauf que nous devons faire attention au problème nul mentionné par @夜 qui disparaît en été [lingchenxiaoshixiari]

Vous pouvez ajouter un tableau de type journal au déclencheur pour voir si le déclencheur a été exécuté

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal