2012-11-06 39 views
1

我在CentOs 5上使用mysql-server-5.0.45-7.el5。不能刪除MySQL中的「MUL」鍵/索引 - SHOW中列出的列

在我的數據庫中,有一個表,其中,我不知道什麼時候,一個MUL密鑰被創建(數據庫是共享的,在一個組的控制下),現在當我嘗試插入一些值時,我得到如上所示的錯誤:

Duplicate entry '2-1-2004-09-11 13:13:41.526' for key 2:INSERT INTO ephemeris SET 
EPH_TYPE_ID = 1, FILENAME = 'CBERS_2_CCD1_DRD_2004_09_11.13_13_23', ID = 0, 
IS_NEW = 1, SATELLITE_ID = 2, TIME = '2004-09-11 13:13:41.526' 

我得到這個錯誤一次,我試圖ALTER TABLE ephemeris DROP INDEX SATELLITE_ID; 它在第一次工作,但現在出現了相同的約束,它根本沒有工作。

表的結構(續):

mysql> show columns from ephemeris; 

+--------------+--------------+------+-----+---------+----------------+ 
| Field  | Type   | Null | Key | Default | Extra   | 
+--------------+--------------+------+-----+---------+----------------+ 
| ID   | int(11)  | NO | PRI | NULL | auto_increment | 
| SATELLITE_ID | int(11)  | NO | MUL | 0  |    | 
| EPH_TYPE_ID | int(11)  | NO |  | 0  |    | 

當我鍵入ALTER TABLE命令,MySQL的返回如:

mysql> ALTER TABLE ephemeris DROP INDEX ephemeris.SATELLITE_ID ; 
ERROR 1091 (42000): Can't DROP 'SATELLITE_ID'; check that column/key exists 

任何人已經獲得這樣的錯誤?任何幫助?

Rgds。

+1

「SHOW CREATE TABLE ephemeris」的輸出是什麼? – Jocelyn

+0

我要回答的部分: 'mysql> show create table ephemeris; |表|創建表|星曆| CREATE TABLE'ephemeris'( 'ID'int(11)NOT NULL auto_increment, 'SATELLITE_ID'int(11)NOT NULL默認'0', 'EPH_TYPE_ID'int(11)NOT NULL默認'0', ' ('ID'), UNIQUE KEY'SATTYPTIM'('SATELLITE_ID','EPH_TYPE_ID','TIME') )ENGINE = MyISAM AUTO_INCREMENT = 3504219 DEFAULT CHARSET = latin1 |' –

+0

點擊「編輯」更新你最初的問題的內容,它會更容易閱讀。 – Jocelyn

回答

1

您需要首先刪除外鍵約束,然後刪除索引。

mysql> show create table a; 

| CREATE TABLE `a` (
`id` varchar(20) DEFAULT NULL, 
`sal` int(20) DEFAULT NULL, 
`b_id` varchar(20) DEFAULT NULL, 
KEY `b_id` (`b_id`), 
CONSTRAINT `a_ibfk_1` FOREIGN KEY (`b_id`) REFERENCES `b` (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 

mysql> alter table a drop foreign key `a_ibfk_1`; 
Query OK, 0 rows affected (0.10 sec) 
Records: 0 Duplicates: 0 Warnings: 0 

mysql> alter table a drop index `b_id`; 
Query OK, 0 rows affected (0.23 sec) 
Records: 0 Duplicates: 0 Warnings: 0