Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error al insertar tabla

Estas en el tema de Error al insertar tabla en el foro de Mysql en Foros del Web. Tengo un problema, cuando intento insertar estas tres tablas me da el siguiente error en tabla "trabajador" : #1215 - Cannot add foreign key constraint ...
  #1 (permalink)  
Antiguo 11/04/2014, 09:59
 
Fecha de Ingreso: abril-2014
Mensajes: 2
Antigüedad: 10 años, 7 meses
Puntos: 0
Exclamación Error al insertar tabla

Tengo un problema, cuando intento insertar estas tres tablas me da el siguiente error en tabla "trabajador" :
#1215 - Cannot add foreign key constraint
me da el error donde hago el ON y el UPDATE pero no descubro por que es,
Alguien me puede encontrar el fallo? Gracias
Código MySQL:
Ver original
  1. CREATE TABLE puesto(
  2.     nom_puesto VARCHAR(10),
  3.     CONSTRAINT cp_puesto PRIMARY KEY(nom_puesto)
  4. );
  5. CREATE TABLE seccion(
  6.         cod_seccion       SERIAL,
  7.     nom_seccion       VARCHAR(20) NOT NULL,
  8.         alta              BOOLEAN NOT NULL,
  9.         precio            FLOAT NOT NULL,
  10.         CONSTRAINT cp_seccion PRIMARY KEY(cod_seccion),
  11.         CONSTRAINT chk_precio CHECK(precio>=0)
  12. );
  13. CREATE TABLE trabajador(
  14.     dni_trabajador  VARCHAR(8) NOT NULL,
  15.     nom_puesto  VARCHAR(10) NOT NULL,
  16.     nombre      VARCHAR(30) NOT NULL,
  17.     apellidos   VARCHAR(30) NOT NULL,
  18.     direccion   VARCHAR(30) NOT NULL,
  19.     telefono    VARCHAR(9) NOT NULL,
  20.     correo      VARCHAR(30) NOT NULL,
  21.     contrasenya VARCHAR(100) NOT NULL,
  22.     num_bancario    VARCHAR(20) NOT NULL,
  23.     cod_seccion INTEGER,
  24.  
  25.     CONSTRAINT cp_trabajador PRIMARY KEY(dni_trabajador),
  26.     CONSTRAINT ca_trabajador_seccion FOREIGN KEY(cod_seccion)
  27.     CONSTRAINT ca_trabajador_puesto FOREIGN KEY(nom_puesto)
  28. );

Última edición por gnzsoloyo; 11/04/2014 a las 10:10
  #2 (permalink)  
Antiguo 11/04/2014, 10:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error al insertar tabla

En primer lugar, no hay un tipo de columna "SERIAL". Eso puedes verlo en el manual de referencia (http://dev.mysql.com/doc/refman/5.6/...ger-types.html).
Eso puede causar el problema de que, como ambos tipos declarados en las diferentes tablas no coinciden, no se pueda crear la FK.
Una FK debe ser del mismo tipo de dato, rango y collation (si es de caracteres), que la PK de referencia.
Trata de usar tipos de datos naturales de MySQL, y no los declares con tipos pertenecientes a otros DBMS (para el caso INTEGER es INT).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/11/2014, 08:43
 
Fecha de Ingreso: abril-2014
Mensajes: 2
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Error al insertar tabla

Gracias por la respuesta.

Etiquetas: null, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:12.