我想限制整數字段可以包含的數字的數量。例如,我希望該字段包含長度不超過5的數字,因此99999將是最高有效條目。限制整數數據類型字段長度
這是可能在MySQL中做的嗎?我看過文檔,但沒有找到我的答案。
我想限制整數字段可以包含的數字的數量。例如,我希望該字段包含長度不超過5的數字,因此99999將是最高有效條目。限制整數數據類型字段長度
這是可能在MySQL中做的嗎?我看過文檔,但沒有找到我的答案。
不幸的是,在MySQL中並沒有實現CHECK
約束和用戶定義的類型。也許這將在未來的版本中改變。
在那之前,你可以使用觸發器來校正輸入,如果這是一個路要走你:
delimiter //
CREATE TRIGGER trigger_check BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN
IF NEW.NUM > 99999 THEN
SET NEW.NUM = 0;
END IF;
END
//
這是不可能在數據庫級別進行的。您必須使用存儲過程,或者將該邏輯放入應用程序中。
http://dev.mysql.com/doc/refman/5.5/en/integer-types.html
中等int是你可以得到的最接近。
此外,你可能會看到這樣的事情在某個時刻:
CREATE TABLE blah (col INT (5));
這不會做你認爲雖然。這實際上並沒有將場地的長度限制在5個地方。它表示當zerofill被設置在列上時,它應該填充到5個位置。
無論何時對數據庫進行更改,您都可以添加觸發器來執行此操作。觸發器將在應用更改之前執行,以驗證它是否正在使用「有效」條目進行更新。如果條目無效,更新可以被拒絕。
爲了完整起見,你也可以使用一個外鍵爲整數的表結束於99999。 –