2011-04-27 160 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