今天在做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'的更多相关文章

  1. ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'

    OS: centos 6.3DB: 5.5.14 测试创建yoon测试表,没有主键,没有索引,基础数据内容如下: mysql> select * from yoon;+----+-------- ...

  2. Duplicate entry '0' for key 'PRIMARY'的一种可能的解决办法

    在MySQL设计好数据库往往数据库中插入数据的时候, 因为主键ID默认是不赋值的,只给其他项目赋值了,相关的SQL代码是这样的 StringBuilder strSql = new StringBui ...

  3. Duplicate entry '0' for key 'PRIMARY'

    一般使用ORM时,提交新增实体时, mysql会出现此错误:Duplicate entry '0' for key 'PRIMARY' 原因是插入语句,未提供主键的值,且主键是非自增长的. 解决办法是 ...

  4. Mysql 错误:Duplicate entry '0' for key 'PRIMARY'

    [1]添加数据报错:Duplicate entry '0' for key 'PRIMARY' (1)问题现象 SQL 语句如下: DROP TABLE test_distinct; CREATE T ...

  5. #1062 - Duplicate entry '0' for key 'PRIMARY'—— mysql的小问题

    问题:# 1062 -重复输入“0”. 原因:我估计可能是数据表中主键这一栏已经有一个为“0”了,一般出现这种问题是以int类型的字段在输入时没有输如数据,而int类型默认值为“0”,而你之前第一条数 ...

  6. [Err] 1062 - Duplicate entry '0' for key 'PRIMARY'

    问题描述: sql语句执行的时候,插入语句无法正确执行 问题原因: 主键 重复 出现 0 解决方案: 将主键设置为自增 然而,设置自增后还是可能会出现下面的问题 #1062 – Duplicate e ...

  7. 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字段设置自增

  8. 问题 Duplicate entry '0' for key 'PRIMARY'

    今天使用了触发器,在一个表中执行增删改操作,然后在另一个表中执行相应的记录时,出现了这个问题 其实这个问题应该算是细节问题,有两种情况: 1.就是在插入数据的时候将id设置为not nul但是在插入数 ...

  9. 1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on query

    mysql主从库同步错误:1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on querymysql主从库在同步时会发生1062 La ...

随机推荐

  1. substring函数——sql

    --substring( expression, start, length ) expression待截取的文字 start 截取位置的起始下标 length 要截取的长度 --左边第一个字符的下标 ...

  2. LeetCode: Single Number I && II

    I title: Given an array of integers, every element appears twice except for one. Find that single on ...

  3. H264码流打包分析(精华)

    H264码流打包分析 SODB 数据比特串-->最原始的编码数据 RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若 ...

  4. fzu 1675 The Seventy-seven Problem

    给你长度为 10^5~10^6长度,由数字组成的串 其中有4位不见了 补全该串 使得在该串能整除 77的同时 尽可能大// 先计算出每个 n*10^m 模 77 的循环节 n=0,1,2..,9// ...

  5. delphi 操作 word

        uses  ComObj,word2000   procedure TForm1.ExportWord(); var FWord :Variant; FDoc :Variant; i,Row: ...

  6. js刷新页面方法

    1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet])   参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取 ...

  7. C#复习反射

    反射中常用方法: //获取对象类型 One one = new One(); Type t = one.GetType(); //动态加载 Assembly a = Assembly.LoadFile ...

  8. qt 在指定区域添加图片

    博客出处:http://www.devdiv.com/thread-39111-1-1.html 折腾了几天,终于实现了图片的淡出淡入的效果. 其实也应该是说实现了图片的淡入效果,因为淡出效果我暂时还 ...

  9. ARM指令集----杂项指令

    ARM指令集可以分为6类,即是跳转指令,数据处理指令,程序状态传输指令,Load.Store指令,协处理器指令和异常中断指令 跳转指令: 在ARM中有两种方式可以实现程序的跳转,一种是跳转指令,另一种 ...

  10. ckeditor+jsp+spring配置图片上传

    CKEditor用于富文本输入是极好的,它还有一些插件支持扩展功能,其中图片上传就是比较常用到的.本文简单记录我的实现步骤. 1.CKEditor除了提供三种标准版压缩包下载,还可根据自己的需求进行个 ...