Die folgende create-Anweisung zeigt die aktuelle Struktur einer meiner MariaDB-Tabellen.Es ist nicht möglich, Indizes zu entfernen
CREATE TABLE `councilor` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`user` BIGINT(20) NOT NULL,
`council` INT(11) NOT NULL,
`role` CHAR(50) NOT NULL DEFAULT 'member' COLLATE 'utf8_persian_ci',
`cDate` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
`uDate` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`startDate` DATETIME NULL DEFAULT NULL,
`endDate` DATETIME NULL DEFAULT NULL,
`responsibility` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_persian_ci',
`details` TEXT NULL COLLATE 'utf8_persian_ci',
PRIMARY KEY (`id`),
UNIQUE INDEX `userId_councilId` (`user`, `council`),
INDEX `council_user_council_foreign` (`council`)
)
COLLATE='utf8_persian_ci'
ENGINE=InnoDB
ROW_FORMAT=COMPACT
AUTO_INCREMENT=11;
Ich muss den eindeutigen Index entfernen, aber der Versuch, einen der beiden Schlüssel zu löschen, schlägt fehl.
ALTER TABLE `councilor`
DROP INDEX `userId_councilId`;
/* SQL-Fehler (1553): Kann nicht Index löschen 'userId_councilId': benötigen in einem Fremdschlüssel */
ALTER TABLE `councilor`
DROP INDEX `council_user_council_foreign`;
/* SQL-Fehler (1553): Can not drop index ‚council_user_council_foreign ': benötigt in einer Fremdschlüssel-Einschränkung */
Das Entfernen aller Tabellenzeilen hilft auch nicht. Wenn jedoch eine neue Tabelle von dem obigen Skript erstellt wird, wird das Problem nicht auftreten.
Sie letzte Aktualisierung gemacht ganze Frage sinnlos. Bitte überprüfen Sie die ganze Frage und aktualisieren Sie sie richtig –
Die folgende Struktur, die Sie gepostet haben, ist falsch –
Versuchen Sie die beste Antwort hier: http://stackoverflow.com/questions/15501673/how-to-temporary-disable-a-foreign-key-constraint -in-mysql –