Bonjour,
Responsable MySQL
La syntaxe CHECK est implémentée (ne renvoie pas d'erreur à la création de la table), mais elle est ignorée par tous les moteurs de bases de données de MySQL.
Evidemment, on peut se demander à quoi ça sert, dans ce cas, de l'avoir implémentée . Sûrement pour des questions de compatibilités entre SGBD lors des migrations.
Il faut donc passer par un trigger.
Bonjour,
Dans ce cas, comment faire pour que le trigger interdise l'Insert si (par exemple) l'heure d'arrivée est inférieure à l'heure de départ (Violation de contrainte ) ?
En SQL pure ça se définit par une contrainte de validation CHECK :
CONSTRAINT CHECK_DATE CHECK (DATE_ARRIVEE >= DATE_DEPART + 1),
J'ai essayé avec un trigger :
1 2 3 4 5 6 7 8
|
CREATE TRIGGER CONTROLE_MONTANT BEFORE UPDATE ON T_FACTURE_FCT3
FOR EACH ROW
BEGIN
IF (<CONDITION>)then
SIGNAL SQLSTATE '70000';
end IF;
END; |
mais les fonctions signal / resignal ne marchent pas sur ma version de mysql (5.0) , mais disponibles sur la beta 5.4
Comment passer outre cette limitation ?
Merci
Partager