Tableau utilisateur
CREATE TABLE `USERS` ( `ID` char(255) COLLATE utf8_unicode_ci NOT NULL, `NAME` char(255) COLLATE utf8_unicode_ci NOT NULL, `EMAIL` char(255) COLLATE utf8_unicode_ci DEFAULT NULL, `CREATED_IN` datetime NOT NULL, `SIGNED_IN` datetime NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Déclencheur
CREATE TRIGGER `ABC` BEFORE INSERT ON `USERS` FOR EACH ROW IF NEW.ID = "" OR NEW.NAME = "" OR NEW.CREATED_IN = "" OR NEW.CREATED_IN = "0000-00-00 00:00:00" OR NEW.SIGNED_IN = "" OR NEW.SIGNED_IN = "0000-00-00 00:00:00" THEN SIGNAL SQLSTATE "45000"; END IF
Colonne ID
("", " ", " ", " ", 等等...) -> 应该返回错误
("bf9 d 34 c9 08" = "bf9d34c908")
Colonne Nom
("", " ", " ", " ", 等等...) -> 应该返回错误
Barre de courrier électronique
("", " ", " ", " ", 等等...) -> 应该返回错误
("nkr owks lpehqp jmgdb @ gm ail.com" = "[电子邮件受保护]")
Colonnes CREATED_IN et SIGNED_IN
La version MySQL est 5.7
Quelle est la meilleure façon de gérer ces exigences sur le formulaire UTILISATEURS ?
Un déclencheur peut ressembler à ceci :
REMARQUE - Ce déclencheur permet à n'importe quelle valeur d'être NULL (mais seul l'e-mail peut être NULL, toutes les autres colonnes sont définies comme NON NULL).
Vous pouvez réorganiser les blocs et mettre en premier la condition avec la probabilité la plus élevée. Le déclencheur n'exécutera pas le code suivant après l'exécution de SIGNAL.