Oracle - Llave foranea a tabla de otro esquema

 
Vista:

Llave foranea a tabla de otro esquema

Publicado por Lizeth (16 intervenciones) el 01/06/2007 01:26:47
Hola, mi problema es el siguiente: tengo dos esquemas, en el esquema 1 tengo tablas relacionadas con las tablas del esquema 2, como hago la relacion de Llave foranea entre tablas de distintos esquemas????

Yo coloco lo siguiente:

ALTER TABLE ESQ1.TABLA_A ADD (CONSTRAINT FK_TABLAB_TABLAA FOREIGN KEY(ID_TABLA)
REFERENCES ESQ2.TABLA_B(ID_TABLA)

pero me marca error ... me dice que no existe la tabla, o que no tengo permisos suficientes.
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

RE:Llave foranea a tabla de otro esquema

Publicado por R3DRUM (16 intervenciones) el 01/06/2007 13:15:45
Hola:

En principio si la Sintaxis que has escrito es exactamente la que tienes, veo que te sobra un paréntesis, .....ADD (CONSTRA.... pero en lo siguiente lo tienes correcto:

ALTER TABLE <nombTabla1>
ADD CONSTRAINT <nombRestricción>
FOREIGN KEY (<nombCampo>)
REFERENCES [<nombUsuario>.]<nombTabla2>(<nombCampo>);

Si ese paréntesis no lo tienes en tu código, será por que no tienes permiso de trabajar con los datos de ese usuario (esquema). Bueno, más bien, es que ese usuario (esquema) no ha dado el privilegio a los demás.

Saludos, asta luego y SUERTE
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

RE:Llave foranea a tabla de otro esquema

Publicado por Rodolfo Reyes (445 intervenciones) el 01/06/2007 17:36:50
Para que puedas hacer esto necesitas dos cosas.

Supongamos que tienes el Esquema A donde estas creando la llave foranea hacia una tabla del esquema B

1) El dueño del esquema A tiene que tener permiso de select sobre la tabla de esquema B y tambien le tienes que dar el permiso de REFERENCE sobre la tabla.

Ejemplo

GRANT REFERENCES ON "B"."TABLA" TO "A"
/

2) Estos permisos los tiene que tener el dueño del esquema A de manera directa, esto quiere decir que no los puede tener por medio de un role. Se los tienes que dar de forma directa al usuario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar