Lunes, Mayo 12th, 2008...16:45
1005 - Can’t create table ‘xxx’ (errno: 150)
Saltar a Comentarios

Solo hay dos posibles casos en los que nos podría fallar, con este error, nuestra creación de claves foráneas en una base de datos MySQL.
- Si los dos campos (Nombre de campo y el nombre de campo foráneo) usan tipos de campo incompatibles.
- Si tu usas “On Delete Set Null” pero el campo no lo permite, MySQL te devolverá el error.
Me decidi a crear este post, porque tuve el problemilla, hay mucha gente por muchos foros buscando resolverlo y no está detallada la información :D. Es una tontería que me hizo perder tiempo, espero que no se lo haga perder a otros.

6 Comentarios
Junio 22nd, 2008 at 17:08
Es cierto, era eso, me salió el error y era por campos foránetos con tipos de datos incompatibles, gracias!
Julio 22nd, 2008 at 17:07
Bueno… mis columnas comparten el tipo de dato que es de tipo INT con longitud (4) NOT NULL DEFAULT 0…
No se que hacer. El statement que uso para añadir la llave foranea es:
ALTER TABLE cti ADD FOREIGN KEY (entidad_id) REFERENCES entidades (entidad_id) ON DELETE RESTRICT ON UPDATE CASCADE;
El error es:
#1005 - Can’t create table ‘.\digitalizacion\#sql-7a0_da.frm’ (errno: 150)
Por si hay alguna duda va la estructura de la tabla:
Tabla cti
| Field | Type | Null | Key | Default | Extra |
| entidad_id | int(4) | NO | | 0 | |
Tabla entidades
| Field | Type | Null | Key | Default | Extra |
| entidad_id | int(4) | NO | | 0 | |
Julio 22nd, 2008 at 17:17
emmm bien ya resolvi mi problema y fue que dada la celeridad con la que lo intente (debido a que en las pruebas todo salio bien) olvide por completo que la tabla de entidades no tenia una PK asignada en el campo que se referencia como FK en la tabla cti…
no me queda d eotra mas que decir: http://content.ytmnd.com/content/0/c/3/0c36b933b5ab957fbea475b5d612b1fe.jpg
jajajaja gracias.
Julio 23rd, 2008 at 9:04
jaja y aqui comiendome el tarro leyendo esto jaja
Agosto 11th, 2008 at 10:33
Mmmm y que puede ser si la tabla que trato de crear es la primera en ser creada, no tiene ninguna llave foranea y me manda ese código de error??
Septiembre 21st, 2008 at 1:33
Yo tuve este problema, en una base de datos en utf8 y utf8_unicode_ci.
Hice un “dump” de una base de datos que tenía una tabla con otro cotejamiento.
La tabla decía:
ENGINE=InnoDB DEFAULT CHARSET=latin1;
Cambié a:
ENGINE=InnoDB DEFAULT CHARSET=utf8;
Y ya no salió el error
Saludos
Dejar una respuesta