我的程序非常简单,它在一列中插入相同的值并更新另一列的时间戳和日期。它还有一个自动递增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 = 40996
和dt = 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 |
+----------------+-------+----------+-----------------------------------------------------------+
答案 0 :(得分:1)
备份您的数据。 如果你有能力关闭mysqld,你应该这样做并使用myisamchk来修复表。 如果不是一个选项,请尝试使用FLUSH TABLES;和REPAIR TABLE newmeter; 准备好表格中的数据不是很准确。