MySQL中的`unsigned`是啥意思以及何时使用它?
Posted
技术标签:
【中文标题】MySQL中的`unsigned`是啥意思以及何时使用它?【英文标题】:What does `unsigned` in MySQL mean and when to use it?MySQL中的`unsigned`是什么意思以及何时使用它? 【发布时间】:2011-04-23 04:20:37 【问题描述】:“未签名”在 mysql 中是什么意思,我应该什么时候使用它?
【问题讨论】:
【参考方案1】:MySQL 说:
所有整数类型都可以有一个可选的 (非标准)属性 UNSIGNED。 无符号类型可用于允许 列中只有非负数 或当您需要更大的鞋面时 列的数值范围。为了 例如,如果一个 INT 列是 UNSIGNED, 列范围的大小是 相同,但它的端点从 -2147483648 和 2147483647 最高为 0 和 4294967295。
什么时候使用?
问自己这个问题:这个字段是否会包含负值?
如果答案是否定的,那么您需要 UNSIGNED
数据类型。
一个常见的错误是使用从 零 开始的自动递增 INT
的主键,但类型是 SIGNED
,在这种情况下,您将永远不会触及任何负数,您将可能的 id 范围减少到一半。
【讨论】:
表示事物“大小”的值,例如订单中特定商品的数量,或两个位置之间的距离,通常是无符号的 很好的答案,mysql 在自动递增身份时不会默认整数为无符号似乎很奇怪? 如果您想要更清晰的答案,请查看***.com/a/11515613/6335029 @wired00 也许部分原因是UNSIGNED
是一个非标准的 MySQL 功能。
是的,假设您的 ID 为负数以上是关于MySQL中的`unsigned`是啥意思以及何时使用它?的主要内容,如果未能解决你的问题,请参考以下文章