Je suis en train de mettre en place un déclencheur MySQL qui effectue les opérations suivantes:Création d'un déclencheur MySQL pour vérifier les données sur une autre table
- Quand quelqu'un insère des données dans databaseA.bills, il vérifie si databaseB.bills déjà a cette ligne, si ce n'est pas le cas, alors elle fait un insert supplémentaire dans databaseB.bills.
Voici ce que j'ai:
CREATE TRIGGER ins_bills AFTER INSERT ON databaseA.bills
FOR EACH ROW
BEGIN
IF NOT EXISTS (SELECT 1 FROM databaseB.bills WHERE billNumber=NEW.billNumber) THEN
INSERT INTO databaseB.bills (billNumber) VALUES (NEW.billNumber)
END IF
END;//
DELIMITER ;
Le problème est, je ne peux pas créer via la console de MySQL ou phpMyAdmin. Il renvoie des erreurs de syntaxe près de END IF END, et je suis sûr que c'est un problème de délimiteur.
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END IF END' at line 6
Qu'est-ce que je fais mal?
Eh bien, je fini par utiliser cette requête plus courte, puisque oui, billNumber était un index unique. Toutes les autres réponses étaient également correctes. –