Voici ma table:MySQL (InnoDB): nécessité de supprimer la colonne, et d'accompagnement contrainte de clé étrangère et l'indice
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
Je veux supprimer la colonne photo_id
, qui vraisemblablement également exiger la suppression de la contrainte de clé étrangère et l'index.
Le problème est que je reçois des erreurs lorsque je tente de supprimer la colonne:
ERROR 1025 (HY000): Error on rename of '.\dbname\#sql-670_c5c' to '.\dbname\alums_alumphoto' (errno: 150)
... lorsque je tente de supprimer l'index (comme ci-dessus), et lorsque je tente de laisser tomber l'étranger contrainte de clé:
ERROR 1091 (42000): Can't DROP 'photo_id_refs_id_63282119'; check that column/key exists)
Dans quel ordre devrais-je faire tout cela? Quelles commandes précises devrais-je utiliser?
Avez-vous essayé de supprimer à la fois la colonne et l'index dans la même instruction ALTER? – staticsan