2011-04-27 138 views
0

我的程序非常简单,它在一列中插入相同的值,并更新另一列中的时间戳和日期。它还有一个自动递增的ID列,充当表的主键。在主键mysql上的重复条目

+-------+------------+------+-----+-------------------+-----------------------------+ 
| Field | Type  | Null | Key | Default   | Extra      | 
+-------+------------+------+-----+-------------------+-----------------------------+ 
| id | bigint(20) | NO | PRI | NULL    | auto_increment    | 
| Power | float  | YES |  | NULL    |        | 
| dt | timestamp | NO |  | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 
+-------+------------+------+-----+-------------------+-----------------------------+ 

在我,当我试图运行数据插入到表中的命令套牢id = 4000Power = 40996dt = recent date time

的那一刻,我明白,指出

错误

钥匙“主”的重复条目'4971'

检查表:

+----------------+-------+----------+-----------------------------------------------------------+ 
| Table   | Op | Msg_type | Msg_text             | 
+----------------+-------+----------+-----------------------------------------------------------+ 
| newdb.newmeter | check | warning | Table is marked as crashed        | 
| newdb.newmeter | check | warning | 19 clients are using or haven't closed the table properly | 
| newdb.newmeter | check | warning | Size of datafile is: 68816  Should be: 68663   | 
| newdb.newmeter | check | error | Found 4048 keys of 4039         | 
| newdb.newmeter | check | error | Corrupt             | 
+----------------+-------+----------+-----------------------------------------------------------+ 
+1

什么是插入查询? – piotrm 2011-04-27 02:14:09

+0

insert into newdb.newmeter(Power)values(40997); – rasmalai 2011-04-27 02:27:10

+0

@piotrm插入newdb.newmeter(Power)值(40997); – rasmalai 2011-04-27 02:30:54

回答

1

备份您的数据。 如果你能负担得起关闭mysqld,你应该这样做,并使用myisamchk来修复表。 如果它不是一个选项尝试做FLUSH TABLES;和REPAIR TABLE newmeter; 准备好表格中的数据不是很准确。

+0

感谢piotrm“修复表”的工作,现在我可以再次使用同一张表。但我觉得这将需要很长时间来建立一年中的数据库worht我确定有一件事我可以在Excel中做并直接将文件转储到MySQL,所以我可以有数据库日期时间戳一年。任何建议?非常感谢帮助 – rasmalai 2011-04-27 04:02:26

+1

我建议不要使用excel或任何与mysql本身无关的东西。只要确保始终有备份的表文件的副本,并尝试使用mysql联机手册中的说明来尝试不同的操作。 http://dev.mysql.com/doc/refman/5.6/en/myisam-repair.html – piotrm 2011-04-27 04:15:57