这是我的表:
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 …
我在 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)