如何限制我的数据库列的集中输入到数字的具体数量?数据库列INT限制
CREATE TABLE tab (id INT <1 digit> not null, value INT <10 digits> not null);
谢谢
如何限制我的数据库列的集中输入到数字的具体数量?数据库列INT限制
CREATE TABLE tab (id INT <1 digit> not null, value INT <10 digits> not null);
谢谢
添加一个检查约束(SQL服务器)或触发(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
短版本使用TINYINT UNSIGNED NOT NULL
将是一个更适合的数据类型,但它不能限制存储的值。
的更长的版本是,你不妨在MySQL integer data types读了。您会发现TINYINT
已足够满足您的需求,因为这是一个存储-128至+127或0至+255值的1字节列。
其次,如果你把它定义为TINYINT(1)
,那么你将其定义为是与1位的显示宽度的TINYINT。这不会阻止存储大于10的值。有关此行为的更多阅读,请检查numeric type attributes。
谢谢,你知道我在做什么吗?我明天可能会自己做一个真正的项目,不要任何人只是“放弃”我......谢谢。 :-D – user1155788 2012-02-20 13:17:56
顺便说一句,我想我会用VARCHAR(1)。这更好,因为我不需要再读任何东西。 - :d – user1155788 2012-02-20 13:19:49
VARCHAR(1)使用2个字节的数据,当CHAR(1)使用由于VARCHAR需要1个字节1个字节(在短的长度)的了解串多久是(VARCHAR = 1个在每个单独的每个字符字节字符串+ 1字节的长度@字符串最多可包含255个字符,而每个字符的字符不超过1个字符,因此如果您知道每个单元格将具有1字节的字符串,即单个字符,则使用CHAR( 1) – 2012-02-20 13:20:38
'mysql'或'sql'触发? – diEcho 2012-02-20 13:00:35
哦对不起mysql – user1155788 2012-02-20 13:05:04