sql >> Database >  >> RDS >> Mysql

MySQL VARCHAR-achtig gegevenstype met MIN- en MAX-tekenlengtes

U kunt een trigger toevoegen om een ​​uitzondering te genereren wanneer de waarden buiten het bereik vallen, bijvoorbeeld

DELIMITER $$

CREATE TRIGGER `insert_table_var` BEFORE INSERT ON `table` 
FOR EACH ROW
BEGIN
     DECLARE str_len INT DEFAULT 0;
     DECLARE max_len INT DEFAULT 10;
     DECLARE min_len INT DEFAULT 6;

     SET str_len = LENGTH(NEW.col);

     IF str_len > max_len OR str_len < min_len 
     THEN
           CALL col_length_outside_range_error();
     END IF;
END $$
DELIMITER ;;

Hoewel SIGNAL niet beschikbaar is, zou het aanroepen van een ongedefinieerde opgeslagen procedure voldoende zijn (in dit geval col_length_outside_range_error ). Anders denk ik dat de applicatie die de database gebruikt de controles zal moeten uitvoeren.



  1. Laravel Crypt - Waarden vergelijken

  2. MySQL Group van kwartalen naar periodes

  3. Extraheer MySQL-velden van rij in PHP-variabelen en array

  4. MySqlParameter als TableName