尋找與我想要的值類似於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