sql >> Databáze >  >> RDS >> Mysql

MySQL VARCHAR jako datový typ s MIN a MAX délkou znaků

Můžete přidat spouštěč, který vyvolá výjimku, když jsou hodnoty mimo rozsah, např.

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

I když SIGNAL není k dispozici, postačí volání nedefinované uložené procedury (v tomto případě col_length_outside_range_error ). Jinak si myslím, že aplikace využívající databázi bude muset provést kontroly.



  1. Workflow UTF8 PHP, MySQL shrnuto

  2. Špatný pohotovostní režim

  3. Jak používat funkci LISTAGG společnosti Oracle s jedinečným filtrem?

  4. Zachování propagace vždy povolené v Oracle Streams