sql >> Databasteknik >  >> RDS >> Mysql

MySQL VARCHAR liknande Datatyp med MIN och MAX teckenlängder

Du kan lägga till en utlösare för att skapa ett undantag när värdena ligger utanför intervallet, t.ex.

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

Även om SIGNAL inte är tillgängligt räcker det med att anropa en odefinierad lagrad procedur (i detta fall col_length_outside_range_error ). Annars tror jag att programmet som använder databasen kommer att behöva göra kontrollerna.



  1. Onlinemigrering från MySQL 5.6 Non-GTID till MySQL 5.7 med GTID

  2. Skapa en kopia av en databas i PostgreSQL

  3. HOUR() vs EXTRACT(HOUR …) i MariaDB:Vad är skillnaden?

  4. Undviker JTextField setTextupprepning runt programmet