我想限制整数字段可以包含的数字的数量。例如,我希望该字段包含长度不超过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。 –