MYSQL - Non puó essere in grado di creare chiave esterna
-
21-09-2019 - |
Domanda
Quando eseguo la query di sotto di essa genera un errore,
alter table `ttis`.`users`
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)
Errore:
Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
Soluzione
Date un'occhiata a questo post: 13.6.4.4. I vincoli FOREIGN KEY e la ricerca di "150". Qui si dice:
Se si ricreare un tavolo che era cade, si deve avere una definizione conforme al chiave esterna vincoli riferimento di esso. si deve avere i nomi delle colonne ei tipi di destra, e deve avere indici sulla chiavi di riferimento, come affermato in precedenza. Se questi non sono soddisfatti, i rendimenti MySQL numero di errore 1005, si riferisce all'errore 150 nel messaggio di errore.
Se MySQL riporta un numero di errore 1005 da un'istruzione CREATE TABLE, e la messaggio di errore si riferisce all'errore 150, creazione della tabella non è riuscita perché un vincolo di chiave esterna non era correttamente formati. Analogamente, se un ALTER TABLE fallisce e si riferisce alla l'errore 150, che significa una chiave esterna definizione sarebbe formato errato per la tabella alterata. Puoi usare MOSTRA motore InnoDB stato per visualizzare un spiegazione dettagliata dei più recente InnoDB errore di chiave esterna nella server.