标签: mysql-error-1091

MySQL(InnoDB):需要删除列,并附带外键约束和索引

这是我的表:

CREATE TABLE `alums_alumphoto` (  
  `id` int(11) NOT NULL auto_increment,  
  `alum_id` int(11) NOT NULL,  
  `photo_id` int(11) default NULL,  
  `media_id` int(11) default NULL,  
  `updated` datetime NOT NULL,  
  PRIMARY KEY  (`id`),  
  KEY `alums_alumphoto_alum_id` (`alum_id`),  
  KEY `alums_alumphoto_photo_id` (`photo_id`),  
  KEY `alums_alumphoto_media_id` (`media_id`),  
  CONSTRAINT `alums_alumphoto_ibfk_1` FOREIGN KEY (`media_id`) REFERENCES `media_mediaitem` (`id`),  
  CONSTRAINT `alum_id_refs_id_706915ea` FOREIGN KEY (`alum_id`) REFERENCES `alums_alum` (`id`),  
  CONSTRAINT `photo_id_refs_id_63282119` FOREIGN KEY (`photo_id`) REFERENCES `media_mediaitem` (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=63 DEFAULT CHARSET=utf8  
Run Code Online (Sandbox Code Playgroud)

我想删除列photo_id,可能还需要删除外键约束和索引.

问题是当我尝试删除列时出现错误:

ERROR 1025 (HY000): Error on rename of '.\dbname\#sql-670_c5c' to …

mysql innodb mysql-error-1025 mysql-error-1091

10
推荐指数
2
解决办法
2万
查看次数

无法在 MySQL 中删除“MUL”键/索引 - SHOW 中列出的列

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

在我的数据库中,有一个表,我不知道什么时候创建了一个 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'
Run Code Online (Sandbox Code Playgroud)

我有一次遇到这个错误,我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 |
| …
Run Code Online (Sandbox Code Playgroud)

mysql database mysql-error-1091

4
推荐指数
1
解决办法
8123
查看次数