具有SMALLINT id字段的MySQL数据库表
我目前在MySQL数据库中有几个表,其中我声明具有SMALLINT id字段的MySQL数据库表,mysql,myisam,sqldatatypes,unsigned-integer,Mysql,Myisam,Sqldatatypes,Unsigned Integer,我目前在MySQL数据库中有几个表,其中我声明id字段的类型为SMALLINT(6)(这是否正确,因为SMALLINT的长度仅为65535[5])。我在整数类型下读到,当它是无符号的时,范围从正增加到65535。如果我专门将id字段的属性更改为UNSIGNED,这将如何影响我的数据库?此外,从SMALLINT转到MEDIUMINT时是否存在问题 我的数据库类型是MyISAM您可以从SMALLINT切换到MEDIUMINT——不会丢失任何数据 MySQL中的正常整数可以是介于下限和上限之间的任意数
id
字段的类型为SMALLINT(6)
(这是否正确,因为SMALLINT
的长度仅为65535[5])。我在整数类型下读到,当它是无符号的时,范围从正增加到65535。如果我专门将id
字段的属性更改为UNSIGNED
,这将如何影响我的数据库?此外,从SMALLINT
转到MEDIUMINT
时是否存在问题
我的数据库类型是MyISAM您可以从
SMALLINT
切换到MEDIUMINT
——不会丢失任何数据
MySQL中的正常整数可以是介于下限和上限之间的任意数字。对于有符号整数,下限为负数,上限为正数。签名的SMALLINT
可以介于-32768和32767之间。但是,无符号整数仅为正。下限为零,上限为65535
不过,我通常对ID使用
INT
。我宁愿将ID字段的上限设置得太高,以至于永远都不应该达到它。使用无符号类型的主要问题是,如果您执行任何导致负数的算术运算,您最终会得到一个大数字。然而,对于ID来说,这不太可能是一个问题,我经常使用它们来减少一点内存使用
我想不出使用SMALLINT
然后更改为MEDIUMINT
会有什么问题,因为扩展数据类型通常不会导致问题