gpt4 book ai didi

MySQL:使用一个自动递增的整数作为主键——我应该将它声明为无符号的吗?

转载 作者:行者123 更新时间:2023-11-29 02:25:26 25 4
gpt4 key购买 nike

在创建表时,我经常使用 INTEGER 列和 AUTO_INCREMENT 作为主键(代理键),如下所示:

CREATE TABLE 'my_table' (
user_id INTEGER AUTO_INCREMENT PRIMARY KEY,
[…]
);

(请注意,此处的省略号只是为了将示例重点放在重要的内容上。)

现在我已经读到,INTEGER 列可以保存从 -2,147,483,648 到 2,147,483,647 的整数,以及从 0 到 4,294,967,295 的无符号整数。

由于 user_id 将始终是无符号的(如果我没记错的话,MySQL 从 0 开始计数),将此列显式标记为 UNSIGNED 是否有意义以允许更多用户存储在该表中(4,294,967,295 而不是 2,147,483,647)?

最佳答案

根据 http://dev.mysql.com/doc/refman/5.0/en/integer-types.html ,一个 UNSIGNED INT 和一个 signed INT 的大小,所以这不会对您的选择产生影响。据我所知,AUTO_INCREMENT 从 1 开始,所以如果您认为您需要超过 2,147,483,647 行,请选择 unsigned int。

关于MySQL:使用一个自动递增的整数作为主键——我应该将它声明为无符号的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23022983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com