sql >> Database teknologi >  >> RDS >> Mysql

MySQL VARCHAR lignende datatype med MIN og MAX tegnlængder

Du kan tilføje en trigger for at give en undtagelse, når værdierne er uden for området, f.eks.

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

Selvom SIGNAL ikke er tilgængeligt, ville det være tilstrækkeligt at kalde en udefineret lagret procedure (i dette tilfælde col_length_outside_range_error ). Ellers tror jeg, at applikationen, der bruger databasen, bliver nødt til at udføre kontrollen.



  1. Er sp_-præfikset stadig et nej-nej?

  2. 3 måder at få månedens navn fra en dato i MariaDB

  3. Spotlight Cloud-sikkerhedsfunktion - Fjern bogstaver

  4. Kan ikke afserialisere objekt efter lagring af det serialiseret i databasen