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

Oracle, -Saber cual es la Llave Primaria de una Tabla-

Estas en el tema de Oracle, -Saber cual es la Llave Primaria de una Tabla- en el foro de Bases de Datos General en Foros del Web. Que tal, Un muy buen amigo tiene una BD Oracle, tiene SQL Plus y me pregunto: ¿Con qué instrucción puedo ver listados los campos de ...
  #1 (permalink)  
Antiguo 22/09/2005, 14:38
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Oracle, -Saber cual es la Llave Primaria de una Tabla-

Que tal,

Un muy buen amigo tiene una BD Oracle, tiene SQL Plus y me pregunto:

¿Con qué instrucción puedo ver listados los campos de una tabla y que además se denote cuál de los Campos es la Llave primaria?

Me dijo que con Describe no lo veía.

Saludos y Gracias.
  #2 (permalink)  
Antiguo 23/09/2005, 08:40
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Puedes verificar en la Tabla Administrativa USER_CONSTRAINTS en donde tiene algunas columnas bastante interesantes tales como CONSTRAINT_NAME, CONSTRAINT_TYPE donde P refiere a (Primary key) llave primaria y R es los referente a (Foreign key) llave foranea.

Si deseas ver mas columnas simplemente teclea la sigueinte sentencia

Código:
DESCRIBE USER_CONSTRAINTS
tambien puedes utilizar puede utilizar la consuklta de USER_CONS_COLUMNS para encontrar el COLUMN_NAME y la POSICIÓN para el constrainst CONSTRAINT_NAME que te interesa como por ejemplo

Código:
select column_name, position, constraint_name from User_cons_columns;
Lo anterior lo puedes filtar por TABLE_NAME = "nombre tabla a buscar"

Un ejemplo seria el siguiente:
Código:
select constraint_name, constraint_type 
from user_constraints 
where table_name='MITABLABUSCADA';
En este caso me ha dado lo siguiente
Código:
CONSTRAINT_NAME                C
------------------------------ -
SYS_C001400                    P
SYS_C001401                    R
SYS_C001401                    R
teniendo el nombre del Contrainst primario (SYS_C001400) ya puedes realizar la select de la vista USER_CONS_COLUMNS filtrada por CONSTRAINT_NAME="SYS_C001400"
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***

Última edición por Linterns; 23/09/2005 a las 08:47
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 19:28.