密钥主mysql上的重复条目

时间:2011-04-27 02:08:36

标签: mysql duplicates

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

+-------+------------+------+-----+-------------------+-----------------------------+
| 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 = 4000 Power = 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 个答案:

答案 0 :(得分:1)

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