关于我想要的值,正在寻找类似于 VARCHAR 的数据类型,但是有没有办法获得 MIN/MAX 字符长度?
VARCHAR(6,10)
最少 6 个字符,最多 10 个字符。
最佳答案
您可以添加触发器以在值超出范围时抛出异常,例如
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 ;;
虽然 SIGNAL 不可用,但调用未定义的存储过程就足够了(在这种情况下 col_length_outside_range_error
)。否则,我认为使用数据库的应用程序将需要进行检查。
关于MySQL VARCHAR 类具有 MIN 和 MAX 字符长度的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2834330/