Mysql 限制SQL';自动递增';作为主键
我想创建一个在线广告牌系统,每个人都可以发布一个主题作为我的项目 我尝试使用SQL设计数据库来存储每个主题的信息,包括主题id作为主键 首先,我使用带有自动递增的整数数据类型设计id,因为我认为这是最简单的方法。然后我想了想,发现整数有限制(数字可能很高,但它在那里),所以我在这里找到另一种方法 现在我想到了一些伪随机算法,或者使用了主题名称的散列,但仍然不清楚 我在这里也从研究中找到了GUID,但不确定它是否可以使用Mysql 限制SQL';自动递增';作为主键,mysql,mariadb,primary-key,auto-increment,Mysql,Mariadb,Primary Key,Auto Increment,我想创建一个在线广告牌系统,每个人都可以发布一个主题作为我的项目 我尝试使用SQL设计数据库来存储每个主题的信息,包括主题id作为主键 首先,我使用带有自动递增的整数数据类型设计id,因为我认为这是最简单的方法。然后我想了想,发现整数有限制(数字可能很高,但它在那里),所以我在这里找到另一种方法 现在我想到了一些伪随机算法,或者使用了主题名称的散列,但仍然不清楚 我在这里也从研究中找到了GUID,但不确定它是否可以使用 我希望您能为我提供一些方法来处理作为主键的整数大小限制,或者为我提供任何关键
我希望您能为我提供一些方法来处理作为主键的整数大小限制,或者为我提供任何关键字,以便我做进一步的研究。这个答案假设MySQL/MariaDB,因为它使用术语“自动递增”来表示这类列(与使用
identity
或serial
的其他数据库不同)
如果int
不够大,可以使用bigint
虽然我认为你不太可能超过
关于这一点,请参见。
一个bigint有限制:-2^63(-9223372036854775808)到2^63-1(9223372036854775807)如果你期望得到9223372036854775807篇文章,你还有另一个问题……你在使用什么数据库?MariaDB和MySQL你应该知道MariaDB和MySQL是不同的软件产品。MariaDB在2010年左右从MySQL派生出来,它们逐渐变得互不兼容;本论坛98%的问题和答案同样适用于MySQL和MariaDB。这个问题同样适用。在事实发生1小时后,就不再添加任何内容了。MySQL/MariaDB不允许将
DECIMAL
用于AUTO_INCREMENT
。