本文章分享一篇關于mysql 出現Error:Duplicate entry xxxx for key 1解決辦法,有需要了解的朋友可以參考一下.
所出錯形式如下:
- Discuz! info: MySQL Query Error
- User: 愛我荊門
- Time: 2007-3-5 11:00am
- Script: /bbs/post.php
- SQL: INSERT INTO cd12sb_threads (fid, readperm, price, iconid, typeid, author, authorid, subject, dateline, lastpost, lastposter, displayorder, digest, blog, special, attachment, subscribed, moderated, supe_pushstatus)
- VALUES ('64', '0', '0', '0', '0', '愛我荊門', '5', 'fg', '1173063640', '1173063640', '愛我荊門', '0', '0', '0', '0', '0', '0', '0', '0') --Vevb.com
- Error: Duplicate entry '8181' for key 1
- Errno.: 1062
- Similar error report has beed dispatched to administrator before.
之后打開了MYSQL手冊找到了TINYINT和SMALLINT和INT類型的說明:
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一個很小的整數。有符號的范圍是-128到127,無符號的范圍是0到255
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一個小整數。有符號的范圍是-32768到32767,無符號的范圍是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一個中等大小整數。有符號的范圍是-8388608到8388607,無符號的范圍是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]
一個正常大小整數。有符號的范圍是-2147483648到2147483647,無符號的范圍是0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
這是INT的一個同義詞。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一個大整數。有符號的范圍是-9223372036854775808到9223372036854775807,無符號的范圍是0到 18446744073709551615。
原來如此,那網上其它的Invalid Query : Duplicate entry ‘32767′ for key 1出錯的原因也在于此了.
現在找到辦法了,升級數據庫:
- ALTER TABLE `cdb_posts` CHANGE `pid` `pid` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0' AUTO_INCREMENT;
新聞熱點
疑難解答