【发布时间】:2013-09-09 17:16:53
【问题描述】:
我注意到在我的数据库中插入查询时出现错误。
mysql> insert into users (name) values ('Gepp');
返回:
错误 1062 (23000):键 'PRIMARY' 的重复条目 '2147483647'
这是我第一次收到此错误,这可能表明已达到某种限制。无论如何,我检查了其他抱怨相同错误的帖子,发现触发器可能是问题所在。不幸的是,事实并非如此:
mysql> SHOW triggers;
Empty set (0.00 sec)
编辑 我的用户表的结构如下所示:
> *************************** 1. row ***************************
Field: uid
Type: int(11)
Null: NO
Key: PRI
Default: NULL
Extra: auto_increment
*************************** 2. row ***************************
Field: name
Type: varchar(50)
Null: NO
Key:
Default: NULL
Extra:
*************************** 3. row ***************************
Field: email
Type: varchar(100)
Null: NO
Key: UNI
Default: NULL
Extra:
*************************** 4. row ***************************
Field: encrypted_password
Type: varchar(80)
Null: NO
Key:
Default: NULL
Extra:
*************************** 5. row ***************************
Field: salt
Type: varchar(10)
Null: NO
Key:
Default: NULL
Extra:
*************************** 6. row ***************************
Field: descrizione
Type: varchar(600)
Null: YES
Key:
Default: NULL
Extra:
*************************** 7. row ***************************
Field: motto
Type: varchar(100)
Null: NO
Key:
Default:
Extra:
*************************** 8. row ***************************
Field: status
Type: varchar(100)
Null: NO
Key:
Default: Hey new gambler! Share your thoughts!
Extra:
*************************** 9. row ***************************
Field: game
Type: varchar(100)
Null: NO
Key:
Default:
Extra:
*************************** 10. row ***************************
Field: pokeroom
Type: varchar(100)
Null: NO
Key:
Default:
Extra:
*************************** 11. row ***************************
Field: score
Type: int(11)
Null: NO
Key:
Default: 0
Extra:
*************************** 12. row ***************************
Field: created_at
Type: datetime
Null: YES
Key:
Default: NULL
Extra:
*************************** 13. row ***************************
Field: updated_at
Type: datetime
Null: YES
Key:
Default: NULL
Extra:
*************************** 14. row ***************************
Field: photo
Type: varchar(500)
Null: NO
Key:
Default:
Extra:
*************************** 15. row ***************************
Field: panorama
Type: varchar(500)
Null: NO
Key:
Default:
Extra:
我该如何解决这个问题?
【问题讨论】:
-
2147483647是 MySQL 的最大int值。你真的有 2147483647 个用户吗? -
users表的主键是什么?您可能还需要在INSERT INTO中设置它的值,除非它被创建为AUTO INCREMENT。 -
您可能忘记在主键字段上设置 auto_increment,其默认值恰好是该字段的 max_int。第一次插入将起作用,第二次插入将失败,因为 int 没有自动增量。
-
'uid' 列是 PRIMARY KEY 并且还有 AUTO INCREMENT 请看我的编辑。
-
select uid from users order by uid desc limit 1返回什么?
标签: mysql sql-insert