Failed to execute query: Duplicate entry '0' for key 'PRIMARY'
今天在做php登陆和登出会插入数据到log表中,,结果报错了:如下:
Failed to execute query: Duplicate entry '0' for key 'PRIMARY'
SQL: INSERT INTO log set LOGID = 'IN', LOG01 ='test', LOG02 ='127.0.0.1', DT999 = now()
这说明每次往表中插入记录的PRIMARY值均为0
问题描述:
修改前表的结构;
SQL 查询结果 主机: localhost
数据库: minierp
生成日期: 2014 年 03 月 25 日 14:50
生成者: phpMyAdmin 2.10.3 / MySQL 6.0.4-alpha-community-log
SQL 查询: show create table log;
行数: 1 Table Create Table
log CREATE TABLE `log` (
`AUTOID` bigint(20) NOT NULL,
`LOGID` varchar(20) NOT NULL DEFAULT '',
`LOG01` varchar(20) NOT NULL DEFAULT '',
`LOG02` varchar(40) NOT NULL DEFAULT '',
`LOG03` varchar(40) NOT NULL DEFAULT '',
`DT999` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`AUTOID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk COMMENT='操作记录表'
log表的status:
SQL 查询结果 主机: localhost
数据库: minierp
生成日期: 2014 年 03 月 25 日 14:52
生成者: phpMyAdmin 2.10.3 / MySQL 6.0.4-alpha-community-log
SQL 查询: show table status like 'log';
行数: 1 Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
log InnoDB 10 Compact 5 3276 16384 0 0 0 NULL 2014-03-25 22:15:39 NULL NULL gbk_chinese_ci NULL 操作记录表
其中Auto_increment-值为NULL;
解决办法就是把其关键之设置为自增!
解决问题思路:
1、老的表结构,使用的复合索引——“PRIMARY KEY (`AUTOID`)”,没有指定 auto_increment 的值;
2、删除原来主键,重新创建新主键时(alter table log add primary key(AUTOID);
),也未指定 auto_increment的值,所以在创建了新主键后,再看表 log 的状态时, Auto_increment 一栏的值仍为 NULL;
3、mysql 不支持 “alter table sg_medal_action add auto_increment primary key(action_id);”这样的语句,请详看 alter 的语法 http://dev.mysql.com/doc/refman/5.0/en/alter-table.html ;
4、解决问题
mysql> ALTER TABLE `log` CHANGE `AUTOID` `AUTOID` BIGINT( 20 ) NOT NULL AUTO_INCREMENT;
OK,问题解决了.
Failed to execute query: Duplicate entry '0' for key 'PRIMARY'的更多相关文章
- ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'
OS: centos 6.3DB: 5.5.14 测试创建yoon测试表,没有主键,没有索引,基础数据内容如下: mysql> select * from yoon;+----+-------- ...
- Duplicate entry '0' for key 'PRIMARY'的一种可能的解决办法
在MySQL设计好数据库往往数据库中插入数据的时候, 因为主键ID默认是不赋值的,只给其他项目赋值了,相关的SQL代码是这样的 StringBuilder strSql = new StringBui ...
- Duplicate entry '0' for key 'PRIMARY'
一般使用ORM时,提交新增实体时, mysql会出现此错误:Duplicate entry '0' for key 'PRIMARY' 原因是插入语句,未提供主键的值,且主键是非自增长的. 解决办法是 ...
- Mysql 错误:Duplicate entry '0' for key 'PRIMARY'
[1]添加数据报错:Duplicate entry '0' for key 'PRIMARY' (1)问题现象 SQL 语句如下: DROP TABLE test_distinct; CREATE T ...
- #1062 - Duplicate entry '0' for key 'PRIMARY'—— mysql的小问题
问题:# 1062 -重复输入“0”. 原因:我估计可能是数据表中主键这一栏已经有一个为“0”了,一般出现这种问题是以int类型的字段在输入时没有输如数据,而int类型默认值为“0”,而你之前第一条数 ...
- [Err] 1062 - Duplicate entry '0' for key 'PRIMARY'
问题描述: sql语句执行的时候,插入语句无法正确执行 问题原因: 主键 重复 出现 0 解决方案: 将主键设置为自增 然而,设置自增后还是可能会出现下面的问题 #1062 – Duplicate e ...
- laravel报错:SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY' (SQL: insert into `cart` (`uid`, `gid`, `gname`, `price`) values (3, 21, 夏季日系复古工装短袖衬衫男士印花潮流宽松五分
原因:要操作的数据表id没有设置自增,导致出现id为0的情况 解决方法:给该数据表的id字段设置自增
- 问题 Duplicate entry '0' for key 'PRIMARY'
今天使用了触发器,在一个表中执行增删改操作,然后在另一个表中执行相应的记录时,出现了这个问题 其实这个问题应该算是细节问题,有两种情况: 1.就是在插入数据的时候将id设置为not nul但是在插入数 ...
- 1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on query
mysql主从库同步错误:1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on querymysql主从库在同步时会发生1062 La ...
随机推荐
- 使用Quartz创建定时任务
项目开发中经常需要定时循环执行某些任务 比如定时发送报表,定时发送邮件,亦或者定时清理缓存,定时更新数据等等 有些时候可以简单地利用Windows Server的计划任务执行程序 Linux也有相应的 ...
- HDU 1425 sort 【哈希入门】
题意:给出n个数,输出前m大的数 和上一题一样,将输入的数加上一个极大地值作为地址 #include<iostream> #include<cstdio> #include&l ...
- php和java的一些比较
现在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和Java阵营.但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异.其实,PHP+ ...
- Leap Motion 开发笔记
Leap Motion 体系架构 Leap Motion支持所有主流操作系统,leap motion在Windows系统下是作为一个服务运行的,在Mac和Linux是后台守护进程.软件通过USB线连接 ...
- cocos2d-x之 CCSpriteBatchNode 用法总结
例子1: CCSpriteBatchNode* batch = [CCSpriteBatchNode batchNodeWithFile:@"table.png"]; ...
- H264中的SPS、PPS提取与作用
牛逼的视频会议网站:http://wmnmtm.blog.163.com/blog/#m=0 ++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- K2 blackpearl 安装
转:http://blog.csdn.net/gxiangzi/article/details/8432188 K2是国外的一款BPM引擎,基于MS的Workflow,关于它的详细介绍在我之前一片博客 ...
- Oracle表操作 (未完待续)
1. Oracle 中将一个表中数据导入到另外一个表的方法 insert into scd_data_201007 select * from analog_data_201007 ; 2. 纵表转换 ...
- Oracle :一次数据库连接,返回多个结果集
1. 一次数据库连接,返回多个结果集 1.1 建立包规范 create or replace package QX_GDJTJ is -- Author : xxx -- Created : 2012 ...
- SELECT样式,兼容IE6
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...