Can';t DROP“;MUL";MySQL中的键/索引-显示中列出的列

Can';t DROP“;MUL";MySQL中的键/索引-显示中列出的列,mysql,database,mysql-error-1091,Mysql,Database,Mysql Error 1091,我在CentOs 5上使用mysql-server-5.0.45-7.el5 在我的数据库中,有一个表,我不知道它是什么时候创建的(数据库是共享的,在一个组的控制下),现在当我尝试插入一些值时,我得到一个错误,如上图所示: 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

我在CentOs 5上使用mysql-server-5.0.45-7.el5

在我的数据库中,有一个表,我不知道它是什么时候创建的(数据库是共享的,在一个组的控制下),现在当我尝试插入一些值时,我得到一个错误,如上图所示:

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\u ID
它第一次起作用,但现在同样的约束出现了,它根本不起作用

表的结构(续):

当我键入
altertable
命令时,mysql返回为:

mysql> ALTER TABLE ephemeris DROP INDEX ephemeris.SATELLITE_ID ;
ERROR 1091 (42000): Can't DROP 'SATELLITE_ID'; check that column/key exists
有人已经犯了这个错误吗?有什么帮助吗


Rgds.

您需要先删除外键约束,然后删除索引

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

showcreatetableepheris
的输出是什么?我将分部分回答:
mysql>showcreatetableepheris;|表|创建表|星历|创建表"星历"('ID'int(11)非空自动增量,'SATELLITE_ID'int(11)非空默认值'0','EPH_TYPE_ID'int(11)非空默认值'0','TIME'varchar 26'非空默认值',主键('ID'),唯一键'SATTYPTIM'('SATELLITE_ID','EPH_TYPE_ID','TIME'))ENGINE=MyISAM AUTO_INCREMENT=3504219 DEFAULT CHARSET=latin1 |
单击“编辑”更新初始问题的内容,这样更容易阅读。您能理解吗?内容被编辑了,我不能再编辑了…读取上一个命令的输出,我可以修改表星历删除索引SATTYPTIM;它会起作用的。谢谢
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