【问题标题】:What does `unsigned` in MySQL mean and when to use it?MySQL中的`unsigned`是什么意思以及何时使用它?
【发布时间】:2011-04-23 04:20:37
【问题描述】:

“未签名”在 MySQL 中是什么意思,我应该什么时候使用它?

【问题讨论】:

    标签: mysql types


    【解决方案1】:

    MySQL 说:

    所有整数类型都可以有一个可选的 (非标准)属性 UNSIGNED。 无符号类型可用于允许 列中只有非负数当您需要更大的鞋面时 列的数值范围。为了 例如,如果一个 INT 列是 UNSIGNED, 列范围的大小是 相同,但它的端点从 -2147483648 和 2147483647 最高为 0 和 4294967295。

    什么时候使用?

    问自己这个问题:这个字段是否会包含负值
    如果答案是否定的,那么您需要 UNSIGNED 数据类型。

    一个常见的错误是使用从 开始的自动递增 INT 的主键,但类型是 SIGNED,在这种情况下,您将永远不会触及任何负数,您将可能的 id 范围减少到一半。

    【讨论】:

    • 表示事物“大小”的值,例如订单中特定商品的数量,或两个位置之间的距离,通常是无符号的
    • 很好的答案,mysql 在自动递增身份时不会默认整数为无符号似乎很奇怪?
    • 如果您想要更清晰的答案,请查看stackoverflow.com/a/11515613/6335029
    • @wired00 也许部分原因是UNSIGNED 是一个非标准的 MySQL 功能。
    • 是的,假设您的 ID 为负数
    猜你喜欢
    • 2012-07-22
    • 2011-10-02
    • 2012-09-12
    • 2022-01-21
    • 2010-10-08
    • 2010-11-22
    • 2015-02-02
    • 2016-02-26
    相关资源
    最近更新 更多