Mysql
 sql >> Base de données >  >> RDS >> Mysql

Valeur de colonne constante dans la table MySQL

Donc, ici, vous pouvez trouver un moyen de contourner MYSQL TRIGGER .

Exemple de tableau :

DROP TABLE IF EXISTS `constantvaluetable`;
CREATE TABLE `constantvaluetable` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `constValue` int(11) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB;

Déclencheur :

DROP TRIGGER IF EXISTS trigger_const_check;
delimiter //
CREATE TRIGGER trigger_const_check BEFORE INSERT ON constantvaluetable 
    FOR EACH ROW 
  BEGIN 
        IF NEW.constValue <> 71 THEN 
        SIGNAL SQLSTATE '45000' SET message_text ='Only allowed value is 71';
        END IF; 
  END //
delimiter ;

Test :

INSERT INTO constantvaluetable(constValue) VALUES(71);

INSERT INTO constantvaluetable(constValue) VALUES(66);

Résultat :

La première instruction d'insertion réussira.

La deuxième instruction d'insertion échouera. Et le message d'erreur suivant s'affichera :

Remarque : En supposant que votre CONSTANTE la valeur est 71 .