MySQL - Problemas con relaciones

   
Vista:

Problemas con relaciones

Publicado por Jose Antonio (1 intervención) el 03/01/2018 11:13:02
Tengo estas dos tablas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE TABLE CANON
(
 COD_CANON       INT NOT NULL,
 NUM_SERIE_CANON      INT NOT NULL,
 POT_DESTRUCTIVA_CANON    INT NOT NULL,
 IA_CANON INT NOT NULL,
 EA_CANON VARCHAR(7) NOT NULL,
 UTILIZADO_CANON CHAR NOT NULL,
 CONSTRAINT PK_CANON PRIMARY KEY (COD_CANON)
);
 
CREATE TABLE COLUMBIA
(
 COD_COLUMBIA       INT NOT NULL,
 NUM_SERIE_COLUMBIA      INT NOT NULL,
 CANON_COLUMBIA    INT NOT NULL,
 CPU_COLUMBIA INT NOT NULL,
 MEMORIA_COLUMBIA INT NOT NULL,
 COMPRESOR_ESPACIAL_COLUMBIA INT NOT NULL,
 CARENADO_ACORAZADO_COLUMBIA INT NOT NULL,
 IA_COLUMBIA INT NOT NULL,
CONSTRAINT PK_COLUMBIA PRIMARY KEY (COD_COLUMBIA)
);

Quiero añadir una clave foranea en la 2 tabla respecto a la 1 con la siguiente instrucción
1
ALTER TABLE COLUMBIA ADD CONSTRAINT fk_columbia_canon FOREIGN KEY (CANON_COLUMBIA) REFERENCES CANON (NUM_SERIE_CANON)

Y me da un error extraño
#1005 - Can't create table 'tarea5.#sql-3148_be' (errno: 150) (Detalles...)

InnoDB Documentación

Supports transactions, row-level locking, and foreign keys

[ Variables | Reserva de búfers | Estado del InnoDB ]

La verdad no sé a que se debe.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Problemas con relaciones

Publicado por xve (1116 intervenciones) el 03/01/2018 15:54:40
Hola Jose Antonio, creo que tu problema es que estas utilizando un campo que no es una clave primaria CANON_COLUMBIA

Si utilizas la clave primaria, te funcionara perfectamente
1
ALTER TABLE COLUMBIA ADD CONSTRAINT fk_columbia_canon FOREIGN KEY (CANON_COLUMBIA) REFERENCES CANON (COD_CANON)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad