我想知道是否可以在MySQL的列定义中设置最大值,就像我们在列定义期间设置默认值一样。如果能够做到,那将如何实现呢?格式示例:
int(5) not null default 1 <Something to set max value> ??
答案 0 :(得分:0)
在表定义中,您只能指定最大字符数,例如,当将一列指定为int(5)时,会将字段限制为5位。
请参阅documentation。
要确保该列不接受大于50的整数,例如,您将需要使用触发器,例如:
LEN
答案 1 :(得分:0)
您只能通过更改类型来控制列的最大值。
如果所需的最小值为-128,所需的最大值为127,则可以使用TINYINT()
。如果您需要介于-32768和32767之间,则需要SMALLINT()
,依此类推。
来源:MySQL Docs: Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
假设您正在处理“ max”和“ min”整数,例如...
TINYINT :1个字节,-128至127带符号,0至255个无符号
SMALLINT :2个字节,-32768至32767有符号,0至65535无符号
MEDIUMINT :3个字节,有符号的8388608至8388607,无符号的0至16777215
INT :4个字节,-2147483648至2147483647有符号,0至4294967295无符号
BIGINT :8个字节,-2 ^ 63至2 ^ 63-1有符号,0至2 ^ 64-1无符号