Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL VARCHAR como tipo de dados com comprimentos de caracteres MIN e MAX


Você pode adicionar um gatilho para lançar uma exceção quando os valores estiverem fora do intervalo, por exemplo
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 ;;

Embora SIGNAL não esteja disponível, chamar um procedimento armazenado indefinido seria suficiente (neste caso col_length_outside_range_error ). Caso contrário, acho que o aplicativo usando o banco de dados precisará fazer as verificações.