我有一张用户的桌子。
我尝试将两行插入空users表(而不是现有行的表)。
在插入数据时,它将第一个数据的id (主键int(10)无符号自动增量)插入为 4294967295 .While插入第二个数据,这导致了完整性约束:重复条目'4294967295',因为它不可能插入大于4294967295的值。
我试着删除表,然后重新创建(,尽管这不是正确的方法),它运行得很好。
我需要知道为什么会发生这种情况??和解决方案。
发布于 2015-10-09 17:50:26
整数有32位,所以最大值是
2^32 = 4294967295所以,如果你需要更多,你需要另一种类型,如bigint。
$this->bigIncrements('id');将使用bigint作为增量。
发布于 2015-10-09 17:44:26
id (primary key BIGINT(10) unsigned autoincrement)Int范围是-2^32到2^32。因此,如果您需要比int=2^32更大的值,您可以使用bigint,其范围是-2^64到2^64。
发布于 2015-10-09 17:45:51
当插入具有自动增量字段的表时,不应指定自动增量字段本身。如示例中所示,categorieID是主键
Query("INSERT INTO prod_categorie (categorieID, parentID) VALUES (?, ?)", array($chkParent, $txtParentCategorie));应该是公正
Query("INSERT INTO prod_categorie (parentID) VALUES (?)", array($txtParentCategorie));https://stackoverflow.com/questions/33044171
复制相似问题