Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Stała wartość kolumny w tabeli MySQL

Więc tutaj możesz znaleźć sposób na obejście MYSQL TRIGGER .

Przykładowa tabela:

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;

Wyzwalacz:

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

Wynik:

Pierwsza instrukcja INSERT powiedzie się.

Druga instrukcja INSERT zakończy się niepowodzeniem. Zostanie wyświetlony następujący komunikat o błędzie:

Uwaga: Zakładając, że Twoja STAŁA wartość to 71 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolejność MYSQL według sortowania rosnąco i malejąco

  2. jak przekazać wartość null do pola klucza obcego?

  3. Wartość logiczna MySQL — odwracanie wartości?

  4. Argument OUT lub INOUT 1 dla procedury xxx nie jest zmienną ani NOWĄ pseudozmienną w funkcji PRZED wyzwalaczem

  5. Jak rzutować znak na liczbę całkowitą podczas odpytywania w django ORM?