首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL自动增量复制条目'4294967295‘

mySQL自动增量复制条目'4294967295‘
EN

Stack Overflow用户
提问于 2015-10-09 17:38:26
回答 4查看 1.4K关注 0票数 3

我有一张用户的桌子。

我尝试将两行插入空users表(而不是现有行的表)。

在插入数据时,它将第一个数据的id (主键int(10)无符号自动增量)插入为 4294967295 .While插入第二个数据,这导致了完整性约束:重复条目'4294967295',因为它不可能插入大于4294967295的值。

我试着删除表,然后重新创建(,尽管这不是正确的方法),它运行得很好。

我需要知道为什么会发生这种情况??和解决方案。

EN

回答 4

Stack Overflow用户

发布于 2015-10-09 17:50:26

整数有32位,所以最大值是

代码语言:javascript
复制
2^32 = 4294967295

所以,如果你需要更多,你需要另一种类型,如bigint。

代码语言:javascript
复制
$this->bigIncrements('id');

将使用bigint作为增量。

票数 4
EN

Stack Overflow用户

发布于 2015-10-09 17:44:26

代码语言:javascript
复制
id (primary key BIGINT(10) unsigned autoincrement)

Int范围是-2^32到2^32。因此,如果您需要比int=2^32更大的值,您可以使用bigint,其范围是-2^64到2^64。

票数 3
EN

Stack Overflow用户

发布于 2015-10-09 17:45:51

当插入具有自动增量字段的表时,不应指定自动增量字段本身。如示例中所示,categorieID是主键

代码语言:javascript
复制
Query("INSERT INTO prod_categorie (categorieID, parentID) VALUES (?, ?)", array($chkParent, $txtParentCategorie));

应该是公正

代码语言:javascript
复制
Query("INSERT INTO prod_categorie (parentID) VALUES (?)", array($txtParentCategorie));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33044171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档