sql >> Databasteknik >  >> RDS >> Mysql

Konstant kolumnvärde i MySQL-tabellen

Så här kan du hitta en väg runt genom MYSQL TRIGGER .

Exempeltabell:

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;

Utlösare:

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);

Resultat:

Den första infogningen kommer att lyckas.

Den andra infogningen misslyckas. Och följande felmeddelande kommer att visas:

Obs! Förutsatt att du är CONSTANT värdet är 71 .



  1. Hur ersätter man specifika värden i en Oracle-databaskolumn?

  2. bästa handledningen för att använda entitetsramverket, POCO och MySQL

  3. PostgreSQL - hur renderar man datum i olika tidszoner?

  4. Anpassad SERIE / autoinkrement per grupp av värden