向mysql中插入时候总出现这种错误Error: Duplicate entry '1' for key 1
插入语句:
insert into test_data values (null,1,now());CREATE TABLE `test_data` (  
  `order_id` INT UNSIGNED auto_increment  NOT NULL COMMENT 'Order numbers. Must be unique.',  
  `status` BOOL NOT NULL DEFAULT '0' COMMENT 'Whether data has been used or not. A value of 0 means FALSE.',  
  `date_used` DATETIME NULL COMMENT 'Date/time that the data was used.',  
  UNIQUE  (  
    `order_id`  
  )  
) ENGINE = innodb COMMENT = 'LoadRunner test data';  

解决方案 »

  1.   

    insert into test_data values (1,now());
    自增字段不能为NULL,可以不用写
      

  2.   

    不写不行啊,报错colum count doesn't match value count at row1.
      

  3.   


    这个说法不正确。当某字段为自增时,可以用null, 或者0 代替。楼主的这个insert into test_data values (null,1,now()); 没有问题。仅用你这个表,应该也不会出现你所说的故障。你的表中不是不还有触发器之类的? 或者你程序中有没有这种语句insert into test_data values (1,1,now()); ?
      

  4.   

    我是在loadrunner里面测试mysql中出错的。单独向里面插入并没有什么错误
      

  5.   

    建议你可以到你的mysql 的错误日志中查看一下出错的那个语句到底是什么。
      

  6.   

    错误日志,
    一般在你的MYSQL的数据文件datadir目录中有一个以 err 为扩展名的文本文件,直接用记事本打开或者其它文本编辑器打开。
      

  7.   

    错误日志,
    一般在你的MYSQL的数据文件datadir目录中有一个以 err 为扩展名的文本文件,直接用记事本打开或者其它文本编辑器打开。
      

  8.   

    奇怪,都没有看到您说的datadir目录,只在bin目录下看到了有带err名字的,是exe文件。
      

  9.   

    datadir 是一个系统变量,这个变量中定义了你的数据文件放在哪个目录下。mysql> show variables like 'datadir';
    +---------------+-----------------------------------------------+
    | Variable_name | Value                                         |
    +---------------+-----------------------------------------------+
    | datadir       | C:\Program Files\MySQL\MySQL Server 5.1\DATA\ |
    +---------------+-----------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  10.   

    照您的方法看到这个目录,但还是不大明白怎样看错误日志?而且为什么为什么在安装目录下看不到data目录呢?
      

  11.   

    在这个目录中去找一个以 err 为扩展名的文件。
      

  12.   

    错误日志里面显示的是这样的:
    InnoDB: The error means that another program is using InnoDB's files.
    InnoDB: This might be a backup or antivirus software or another instance
    InnoDB: of MySQL. Please close it to get rid of this error.但我只是在loadrunner里面测试用了这个数据库的啊,出错也是在在loadrunner测试插入的时候才报这个错。Duplicate entry '1' for key 1
      

  13.   

    不好意思,说错了,应该是在日志文件中。
    在相同的这个目录中,找一下,有没有以 .log 为扩展名的。
      

  14.   

    没有以.log为扩展名的,只有一个以.err和.pid为扩展名的,另外还有ib_logfile0和ib_logfile1、ibdata1这几个文件了,但ib_logfile0和ib_logfile1用记事本好像打不开
      

  15.   

    你的日志功能没有打开。mysql 5.1 你可以直接用下面命令打开日志。然后再试一下你的程序中的insert语句。SET GLOBAL general_log = 'ON';
      

  16.   

    嗯,照这样是打开了。插入语句的时候提示Duplicate entry '1' for key 1 
    插入语句是:insert into test_data values (1,0,now());order_id不是自增长形式。
      

  17.   

    insert into test_data values (1,0,now());很显然不是MYSQL的问题!是你的程序中的问题了,你的程序并没有向MYSQL传送 insert into test_data values (null,1,now());
    而是提交的 insert into test_data values (1,0,now());
      

  18.   

    insert into test_data values (1,0,now());很显然不是MYSQL的问题!是你的程序中的问题了,你的程序并没有向MYSQL传送 insert into test_data values (null,1,now());
    而是提交的 insert into test_data values (1,0,now());
      

  19.   

    提示的错误是error 1062(23000)Duplicate entry '1' for key 1