MySQL列定义设置最大限制

时间:2018-10-02 14:50:25

标签: mysql

我想知道是否可以在MySQL的列定义中设置最大值,就像我们在列定义期间设置默认值一样。如果能够做到,那将如何实现呢?格式示例:

int(5) not null default 1 <Something to set max value> ??

2 个答案:

答案 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无符号