UPDATE操作出现主键冲突错误
来源:互联网 发布:高校网络思想政治教育 编辑:程序博客网 时间:2024/05/03 03:09
UPDATE操作出现主键冲突错误,如果出现了这样的问题,你一定会感到匪夷所思!
mysql> UPDATE `GC_Price` SET `Price` = '155.00', `OptTime` = '2013-07-01 16:12:36', `CRCode` = '0109' WHERE (PRID = 364706189);
ERROR 1062 (23000): Duplicate entry '2147483647' for key 'PRIMARY'
我的GC_Price表的主键PRID的最大值为:437573062,而求表中也没主键为'2147483647' 的记录。
2147483647:注意,这个int的最大值,不信,你用计算器算一算。应该是表的自增主键达到了最大值!!!外键关联或触发器等存储代码???
mysql> show triggers like '%Price%'\G;
*************************** 1. row ***************************
Trigger: t_price_changed_prid_insert
Event: INSERT
Table: GC_Price
Statement: INSERT INTO BE_PRID_Changed(PRID,Type) VALUES (NEW.PRID,1);
Timing: AFTER
Created: NULL
sql_mode:
Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
*************************** 2. row ***************************
Trigger: t_price_changed_prid_update
Event: UPDATE
Table: GC_Price
Statement: INSERT INTO BE_PRID_Changed(PRID,Type) VALUES (NEW.PRID,2)
Timing: AFTER
Created: NULL
sql_mode:
Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
2 rows in set (0.00 sec)
查看表BE_PRID_Changed的结构
mysql> show create table BE_PRID_Changed\G;
*************************** 1. row ***************************
Table: BE_PRID_Changed
Create Table: CREATE TABLE `BE_PRID_Changed` (
`id` int(12) NOT NULL AUTO_INCREMENT,
`PRID` int(12) NOT NULL COMMENT '来源PRID',
`Type` tinyint(1) NOT NULL COMMENT '1 from insert 2 from update',
`CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
`Status` tinyint(1) DEFAULT '1' COMMENT '1待处理 2已处理 ',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2147483648 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
AUTO_INCREMENT=2147483648的值已经达到了最大,UPDATE出现主键冲突的“真”凶也找到了。
解决办法,很多:
1)直接删除该触发器(如果没用!!!)
2)rename该表,重新创建一个相同的空表。
- UPDATE操作出现主键冲突错误
- UPDATE 时主键冲突引发的思考
- MySQL UPDATE时主键冲突引发的思考
- Mybatis中insert、Update操作返回主键
- apt-get update 出现错误
- 主键冲突
- SQLyog 使用笔记,自增主键数据冲突错误
- apt-get update出现NO_PUBKEY错误怎么办?
- sudo apt-get update出现错误
- sudo apt-get update出现错误
- apt-get update 出现GPG错误解决方法
- 运行apt-get update后出现错误
- MYSQL关于INSERT操作主键冲突的几个解决方案
- 主键冲突的话就更新否则插入 (ON DUPLICATE KEY UPDATE )
- Oracle存储过程update受外键约束的主键值时完整性冲突解决方案
- Hibernate3主键冲突问题
- Merge 主键冲突问题
- Mysql主键冲突异常
- 海量数据处理常用思路和方法
- HDU 1151
- hdu 1520 Anniversary party
- 优化屏障(Optimization barrier)第一讲
- hdu1197-Specialized Four-Digit Numbers
- UPDATE操作出现主键冲突错误
- 服务器安全配置精华技巧
- 优化屏障(Optimization barrier)第二讲
- JNDI操作LDAP实现(一)
- HDU 2112 HDU Today(最短路,dijkstra)
- 我眼中的设计模式 ----策略模式
- POJ 2349 Arctic Network(最小生成树 kruscal or prim)
- POJ 1287 Networking(kruscal 最小生成树)
- POJ 1611 The Suspects(并查集)