Oracle - Problema al crear clave foranea 1 a n

 
Vista:

Problema al crear clave foranea 1 a n

Publicado por Freddy (1 intervención) el 22/09/2018 01:38:48
Buenas, estoy intentando crear una base de datos para un proyecto de la facultad. En dicha base de datos cuento con una relación 1 a n entre dos columnas. Al intentar crear la clave foranea Oracle me muestra un mensaje que dice:

Error SQL: ORA-02270: no hay ninguna clave única o primaria correspondiente para esta lista de columnas
02270. 00000 - "no matching unique or primary key for this column-list"
*Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement
gives a column-list for which there is no matching unique or primary
key constraint in the referenced table.
*Action: Find the correct column names using the ALL_CONS_COLUMNS
catalog view

Estos son los comandos que ingreso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
CREATE TABLE
Usuarios(
Perf_Codigo       	INTEGER         NOT NULL,
Usu_Codigo  	  	  INTEGER     		NOT NULL,
Usu_Nombre 	    	  VARCHAR(50) 		NOT NULL,
Usu_Apellido    		VARCHAR(50)  	 	NOT NULL,
Usu_NomAcceso   	  VARCHAR(50)   	NOT NULL,
Usu_Contraseña  	  VARCHAR(50)  		NOT NULL,
Usu_Correo      		VARCHAR(50)   	NOT NULL,
CONSTRAINT  	 	PK_Usuarios      	PRIMARY KEY (Perf_Codigo,Usu_Codigo),
CONSTRAINT  	 	UK_Usuarios   	  UNIQUE (Usu_NomAcceso,Usu_Correo)
)TABLESPACE "USERS";
 
ALTER TABLE Usuarios
ADD   	CONSTRAINT FK_Usu_Perf
      	FOREIGN KEY (Perf_Codigo)
      	REFERENCES Perfiles(Perf_Codigo);
 
//Los anteriores comandos se ingresan y funcionan correctamente, en estos creo una clave foránea 1:n desde Perfiles a Usuarios// 
 
CREATE TABLE
Recepcion(
Usu_Codigo      INTEGER     NOT NULL,
Rec_Codigo      INTEGER     NOT NULL,
Rec_Cantidad    INTEGER     NOT NULL,
Rec_Fecha       DATE        NOT NULL,
Rec_Comentario  VARCHAR(50) NULL,
CONSTRAINT      PK_Recepcion   PRIMARY KEY(Usu_Codigo,Rec_Codigo)
)TABLESPACE "USERS";
 
ALTER TABLE Recepcion
ADD   	CONSTRAINT FK_Rec_Usu
      	FOREIGN KEY (Usu_Codigo)
      	REFERENCES Usuarios(Usu_Codigo);
 
//Aqui es donde creo tener el error, aqui trato de crear una clave foranea desde Usuarios a Recepcion y al ejecutar el segundo conjunto de comandos me lanza el mensaje que ya mostré//

Espero sus respuestas.
Muchas Gracias
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 gilman
Val: 117
Bronce
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Problema al crear clave foranea 1 a n

Publicado por gilman (52 intervenciones) el 22/09/2018 09:42:26
El campo Usu_Codigo deberua ser PRIMARY KEY de la tabla Usuarios
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

Problema al crear clave foranea 1 a n

Publicado por Pedro Cubillos (1 intervención) el 29/10/2018 18:13:48
Prueba creando las tablas con solo una columna como Primary Key, no con una Primary Key compuesta,
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