sql >> Database >  >> RDS >> Mysql

Constante kolomwaarde in MySQL-tabel

Dus hier kun je een weg vinden door MYSQL TRIGGER .

Voorbeeldtabel:

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;

Trigger:

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 ;

Testen:

INSERT INTO constantvaluetable(constValue) VALUES(71);

INSERT INTO constantvaluetable(constValue) VALUES(66);

Resultaat:

De eerste insert-instructie zal slagen.

De tweede insert-instructie zal mislukken. En de volgende foutmelding wordt weergegeven:

Opmerking: Uitgaande van uw CONSTANTE waarde is 71 .



  1. Mysql-query om te bepalen of de opgegeven datetime is opgenomen in het datetime-interval

  2. UNIX_TIMESTAMP in SQL Server

  3. MySQL Sum-kolom IF ID is in een andere tabelquery

  4. Hoe maak je een veilige mysql voorbereide verklaring in php?