如何将数据库列的整数输入限制为特定的位数?
CREATE TABLE tab (id INT <1 digit> not null, value INT <10 digits> not null);
谢谢
答案 0 :(得分:6)
添加检查约束(SQL Server)或触发器(MySQL,不支持CHECK约束)
SQL Server示例:
CREATE TABLE tab (
id tinynot null CHECK (id BETWEEN 0 AND 9),
value INT not null CHECK (id BETWEEN 1000000000 AND 9999999999)
);
编辑,你需要MySQL中的触发器
答案 1 :(得分:0)
使用TINYINT UNSIGNED NOT NULL
的短版本将是更合适的数据类型,但它不能限制存储的值。
较长的版本是您可能希望阅读MySQL integer data types。您将看到TINYINT
足以满足您的目的,因为它是一个1字节的列,用于存储-128到+127或0到+255的值。
其次,如果您将其定义为TINYINT(1)
,那么您将其定义为显示宽度为1位的TINYINT。这不会阻止存储大于10的值。有关此行为的更多信息,请查看numeric type attributes。