寻找与我想要的值类似于VARCHAR的数据类型,但有没有办法让MIN/MAX字符长度?MySQL VARCHAR like数据类型,带最小和最大字符长度
VARCHAR(6,10)
这将有最少6个字符和最多10个字符。
寻找与我想要的值类似于VARCHAR的数据类型,但有没有办法让MIN/MAX字符长度?MySQL VARCHAR like数据类型,带最小和最大字符长度
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 ;;
虽然信号不可用,调用一个未定义的存储过程就足够了(在这种情况下col_length_outside_range_error
)。否则,我认为使用数据库的应用程序需要执行检查。
这在SQL中称为CHECK约束,它是ignored by MySQL。
CHECK子句被解析,但被所有存储引擎忽略。
所以像这样:CHECK(LENGTH(fieldName)> = 6 AND LENGTH(fieldName)<= 10) – 2010-05-14 13:30:26
@Phill Pafford:是 – newtover 2010-05-14 13:53:36
@Phill Pafford:你不需要MySQL吗? – Cez 2010-05-14 14:06:44