Commenti(0)
Errore 1005 e 150 in MySQL
Ecco l'antipatico erroe che ritroviamo ogni volta creiamo una tabella con foreing key e abbiamo commesso qualche disattenzione
Quando si opera con database di tipo InnoDB e si lavora con le Foreing KEY ci si trova, spesso al momento di creazione dei una tabella a che fare con l'errore 1005 che si riferisce all'errore 150.
Un esempio tipico è il seguente, supponendo di creare una tabella capitoli
1CREATE TABLE `capitoli` ( 2`capitolo_id` int(10) unsigned NOT NULL auto_increment, 3`capitolo_titolo` varchar(255) NOT NULL, 4PRIMARY KEY (`capitolo_id`) 5); 6 7ALTER TABLE `articoli` 8ADD `capitolo_id` int(10), 9ADD CONSTRAINT `articoli_capitoli` FOREIGN KEY (`capitolo_id`) 10REFERENCES `capitoli` (`capitolo_id`) 11;
In questo caso la console du MySQL restituirà il messaggio
1Error can’t create table … (errno: 150)
Ciò è dovuto all'incongruenza nella definizione di capitolo_id che nella tabella capitoli è unisgned mentre nella tabella articoli è semplicemente int.
Per risolvere questo problema sarà quindi sufficiente definire nella tabella articoli il campo
1capitolo_id unsigned int(10)
Condividi su:
Esprimi un voto:
Argomenti chiave:

MySQL Report un tool di shell per tenere tutto sotto controllo