Déclencheur MySQL avant la vérification de la valeur d'insertion
J'ai une table staff
avec office
colonne. Actuellement, le office
colonne n'accepte pas les valeurs NULL. L'application de la persistance sur cette table a un bug qui signifie que, lorsque le personnel n'a pas été attribué d'office, il essaie d'insérer une valeur NULL sur la table.
Il m'a été demandé d'utiliser un déclencheur pour intercepter les insérer dans la Staff
la table et vérifiez si le office
valeur est NULL et la remplacer par la valeur N/A
.
Ci-dessous est ma tentative à ce jour, mais ont error
dans une tentative visant à mettre en œuvre. Toutes les Idées sur la façon de résoudre ce problème.
CREATE TRIGGER staffOfficeNullReplacerTrigger BEFORE INSERT ON Staff
FOR EACH ROW BEGIN
IF (NEW.office IS NULL)
INSERT INTO Staff SET office="N/A";
END IF
END;
L'erreur:
De Base de données MySQL Erreur: Vous avez une erreur dans votre syntaxe SQL; vérifier la
le manuel qui correspond à votre serveur MySQL version pour le droit
la syntaxe à utiliser près de 'INSÉRER DANS le Personnel de bureau fixes="N/A"; FIN de la'
source d'informationauteur Bitmap
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, modifier la table à autoriser les valeurs Null:
(Changement
CHAR(40)
à ce qui est le cas). Ensuite, vous pouvez utiliser comme déclencheur:Ne devrait-il pas être quelque chose comme ceci: