Ma compréhension est que MySql ignore CHECK
dans la syntaxe CREATE TABLE
. Je pensais donc - pourquoi ne pas utiliser des déclencheurs? Par exemple, j'ai un tableau de personnes et un champ est un numéro de téléphone. Est-il possible de construire un déclencheur pour valider que le numéro de téléphone est valide (par exemple l'indicatif régional) et sur l'événement d'un numéro de téléphone invalide pour faire échouer l'insertion avec un message d'erreur approprié?Tables MySql et triggers
0
A
Répondre
1
Oui, vous pouvez créer un déclencheur pour valider les valeurs insérées et appeler une procédure inconnue. Par exemple -
CREATE TABLE table1
id INT(11) NOT NULL,
phone VARCHAR(10) DEFAULT NULL,
PRIMARY KEY (id)
);
DELIMITER $$
CREATE trigger1
BEFORE INSERT
ON table1
FOR EACH ROW
BEGIN
IF NOT NEW.phone REGEXP '^[0-9]{3}-[0-9]{2}-[0-9]{2}$' THEN
CALL error; -- Call nonexistent procedure
END IF;
END
$$
DELIMITER ;
1
Oui c'est possible et solution souvent utilisée. Depuis MySQL 5.5, vous pouvez utiliser SIGNAL
pour afficher un message d'erreur. Avant cela, vous devez invoquer une erreur d'une autre manière. J'ai l'habitude d'insérer le message d'erreur dans la table avec l'index UNIQUE
, de sorte que cette insertion échoue, et mon message d'erreur est contenu dans le message d'erreur de MySQL.
Questions connexes
- 1. réplication MySQL et Triggers
- 2. Utilisation de triggers mysql sur 2 tables non apparentées
- 3. mysql triggers sur plusieurs instances
- 4. Les triggers MYSQL et "FOR EACH ROW"
- 5. Alternative à TRIGGERS/PROCEDURES MYSQL
- 6. MySQL Triggers: table à table
- 7. MySQL triggers: move to trash
- 8. Documentation de bases de données relationnelles (tables, vues, fonctions, triggers)
- 9. WPF Triggers et styles
- 10. réplication et Triggers
- 11. Transactions et triggers
- 12. Jquery Reliure et Triggers
- 13. Styles, datatemplates et triggers
- 14. symfony 1.4, $ this-> save() et mysql insert triggers
- 15. Constantes dans les triggers dans MySQL
- 16. Syntaxe de mysql Triggers dans l'instruction if
- 17. tables magiques de triggers dans le serveur sql
- 18. MySQL, PHP et plusieurs tables
- 19. Syntaxe MySQL à la syncronisation de schéma via des triggers?
- 20. MySQL Triggers obtiennent le nom de la colonne
- 21. MySQL Triggers utilisant les données de la requête de déclenchement
- 22. Arrêt d'une suppression sur MySQL via les triggers
- 23. MySQL triggers + réplication avec plusieurs bases de données
- 24. Wpf ComboBox Style Triggers et liaison
- 25. jQuery Empilage et désempilage des triggers
- 26. INSÉRER TRIGGERS et la fonction UPDATE()
- 27. NSTimers et triggers dans Obj-C
- 28. MySQL: ordre de tri "SHOW TABLES"
- 29. Les requêtes de journalisation générées par Triggers dans MySQL
- 30. Calculer la taille BLOB en utilisant des triggers dans mysql