La seguente istruzione create mostra la struttura corrente di una delle mie tabelle MariaDB.Non è possibile rimuovere gli indici
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;
Devo rimuovere l'indice univoco, tuttavia il tentativo di eliminare uno dei due tasti ha esito negativo.
ALTER TABLE `councilor`
DROP INDEX `userId_councilId`;
/* Errore SQL (1553): Impossibile eliminare l'indice 'userId_councilId': necessario in un vincolo di chiave esterna */
ALTER TABLE `councilor`
DROP INDEX `council_user_council_foreign`;
/* SQL Error (1553): Impossibile eliminare l'indice 'council_user_council_foreign ': necessario in un vincolo di chiave esterna */
La rimozione di tutte le righe della tabella non è di aiuto. Tuttavia, se una nuova tabella viene creata dallo script precedente, il problema non si verificherà.
l'ultimo aggiornamento ha reso l'intera domanda insensata. Pls esamina l'intera domanda e la aggiorna correttamente –
La seguente struttura che hai postato è errata –
Prova la risposta più importante qui: http://stackoverflow.com/questions/15501673/how-to-temporarily-disable-a-foreign-key-constraint -in-mysql –