<分区>
我需要存储只能为正数的整数,目前正在使用 MySQL。我将值设置为 UNSIGNED “以防万一”我有这么多记录,但是,我是否能到达那里值得怀疑。
我很好奇不使用 UNSIGNED 标志是否更好,以防万一我以后希望将数据库更改为不支持无符号整数的 MS SQL 等。
使用 MySQL 无符号整数是否被认为是不好的做法?
标签 mysql sql sql-server
<分区>
我需要存储只能为正数的整数,目前正在使用 MySQL。我将值设置为 UNSIGNED “以防万一”我有这么多记录,但是,我是否能到达那里值得怀疑。
我很好奇不使用 UNSIGNED 标志是否更好,以防万一我以后希望将数据库更改为不支持无符号整数的 MS SQL 等。
使用 MySQL 无符号整数是否被认为是不好的做法?
最佳答案
我认为使用适合所存储数据的数据类型不是坏习惯。
您提出了一个很好的关于可移植到其他数据库的问题。如果这是一个问题,那么您应该尝试遵守 ANSI 标准功能或您知道数据库之间相似的功能。
将代码从 MySQL 移动到 SQL Server 可能涉及比有符号整数和无符号整数之间的差异更多的重要工作。有许多地方的功能不同、不存在或表现不同。仅举一些例子:
cast()
在 MySQL 和 SQL Server 中采用不同的类型(as signed
vs as int
)123 + '456b'
的情况下有静默错误处理,而 SQL Server 会产生错误。datediff()
在两个数据库中采用不同的参数因此,signed
和 unsigned
之间的区别将是转换中的次要问题。如果您计划进行此类更改,则需要仔细编写代码。
关于mysql - 使用 MySQL 无符号整数是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554852/