您的位置:首页 > 其它

Duplicate entry 't_id' for key 'PRIMARY' 错误

2012-11-14 22:08 435 查看


Duplicate entry 't_id' for key 'PRIMARY'

错误

SQL 查询:

INSERT INTO `new_table`.`eos_datas` (

`area_id` ,

`area_bid` ,

`factory` ,

`material` ,

`kind` ,

`width` ,

`thickness` ,

`price` ,

`time` ,

`status`
)

VALUES ('0', '0', '0', '0', '0', '0', '0', '13213', NOW( ) , '1')

MySQL 返回:


#1062 - Duplicate entry '127' for key 'PRIMARY'


数据表结构:








以上就是data_id这个主键问题。总是停在127上,不向前移动。

网上查找一番,得到:

1。

重复了

你的那个id字段有primary key或者唯一的属性。不能重复的

2。

out range of ....(不记得了),改mysql->my.ini?

上面只是针对一般情况,还是解决不了。

删掉最后一个数据可行,但接着就出错了。

一看data_id为tinyint, 是表的设计有问题。改为int,ok.

网上也跪了一圈,也有和我一样情况的。

如下:

找到原因了,貼出來大家看一下,應該有滿多朋友遇到的情況和我一樣。

這是我建表的命令

CREATE TABLE `employee_staff` (

`staff_id` tinyint(10) NOT NULL auto_increment,

`name` varchar(8) NOT NULL,

`class` varchar(4) NOT NULL,

`sector` varchar(10) NOT NULL,

`group` varchar(14) NOT NULL,

`staff` varchar(4) NOT NULL,

`staff_time` varchar(10) NOT NULL,

PRIMARY KEY (`staff_id`)

) ENGINE=MyISAM DEFAULT CHARSET=big5;

發現問題了嗎?問題就出在tinyint這個字符類型上面。

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。

痛苦啊。研究了幾天,問題出在這。。不好好學SQL基礎,下場可悲啊。

http://www.php100.com/forum/read-htm-tid-2016.html

没认真学过mysql,还是要出问题的。细节啊。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐