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

como poner primary y foreng key auna tabla

Estas en el tema de como poner primary y foreng key auna tabla en el foro de Oracle en Foros del Web. HOla tengo un problema nos e como poner el primary key y el foreng key a mis tablas mediante script alguien me puede ayudar mi ...
  #1 (permalink)  
Antiguo 13/05/2013, 23:44
 
Fecha de Ingreso: julio-2011
Ubicación: Peru
Mensajes: 92
Antigüedad: 13 años, 4 meses
Puntos: 1
como poner primary y foreng key auna tabla

HOla tengo un problema nos e como poner el primary key y el foreng key a mis tablas mediante script alguien me puede ayudar mi mi BD est en ORACLE

este es mi script

Código HTML:
CREATE TABLE Articulo
(
	IdArticulo           VARCHAR2(20) NOT NULL ,
	Nombre_Articulo      VARCHAR2(20) NULL ,
	PrecioVenta          NUMBER(10,2) NULL ,
	IdCategoria          VARCHAR2(20) NULL 
);
CREATE TABLE Categoria
(
	IdCategoria        VARCHAR2(20) NOT NULL ,
	Nombre_Categoria   VARCHAR2(30) NOT NULL
);

CREATE TABLE Cliente
(
	IdCliente            VARCHAR2(20) NOT NULL ,
	Nombre_Empresa       VARCHAR2(20) NULL ,
	Direccion            VARCHAR2(20) NULL 
	
);


CREATE TABLE Factura
(
	NumFactura           INTEGER NOT NULL ,
	IdCliente            VARCHAR2(20) NULL ,
	FechaFactura         DATE NULL,
	SubTotal             NUMBRE(10,2) NULL,
	IGV                  NUMBER(10,2) NULL,
	TOTAL                NUMBER(10,2) NULL
);

CREATE TABLE DetalleFactura
(
	NumFactura           INTEGER NOT NULL ,
	IdArticulo           VARCHAR2(20) NULL ,
	Cantidad             INTEGER NULL,
	PrecioUnit           NUMBER(10,2) NULL,
	ValorVenta           NUMBER(10,2) 	
);

esperando su pronta ayuda
  #2 (permalink)  
Antiguo 14/05/2013, 07:15
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: como poner primary y foreng key auna tabla



www.google.com
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 14/05/2013, 08:50
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: como poner primary y foreng key auna tabla

Por las dudas no se entienda bien...

Agregar FK en Oracle

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 23/05/2013, 14:29
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 9 meses
Puntos: 17
Respuesta: como poner primary y foreng key auna tabla

Las FK se ponen justo debajo de tu tabla que has creado, si no sabes bien, puedes empezar haciendo estas actividades de crear tablas y su UNION (relaciones) con un programa

llamado Power Designer..

Es muy bueno y Primero vas a descargarlo, creas las tablas con la relación (mira manuales es muy fácil) en el Modelo Conceptual,, una vez creado esto ya puedes hacer el Modelo Físico (que te muestra la relación con flechas) dependiendo de donde toma la FKey.
Luego de tener el Modelo Físico vas a la pestaña

DATABASE > Generate Database...

Esto te crea un fichero con todos los pasos. un ejemplo sería.

Código SQL:
Ver original
  1. CREATE TABLE provincias (
  2.     cod_provincia    CHAR(2)        NOT NULL,
  3.     nombre        VARCHAR2(50)    NOT NULL,
  4.     CONSTRAINT pk_provincias
  5.         PRIMARY KEY (cod_provincia)
  6. );
  7. CREATE TABLE municipios (
  8.     cod_provincia    CHAR(2)        NOT NULL,
  9.     cod_municipio    CHAR(3)        NOT NULL,
  10.     nombre        VARCHAR2(50)    NOT NULL,
  11.     CONSTRAINT pk_municipios
  12.         PRIMARY KEY (cod_provincia, cod_municipio)
  13. );
  14. CREATE TABLE clientes (
  15.     id_cliente    INTEGER        NOT NULL,
  16.     cod_provincia    CHAR(2)        NOT NULL,
  17.     cod_municipio    CHAR(2)        NOT NULL,
  18.     cif        CHAR(10)    NOT NULL,
  19.     apellidos    VARCHAR2(40)    NOT NULL,
  20.     nombre        VARCHAR2(40)    NOT NULL,
  21.     direccion    VARCHAR2(40)    NOT NULL,
  22.     cp        CHAR(5)        NOT NULL,
  23.     CONSTRAINT pk_clientes
  24.         PRIMARY KEY (id_cliente)
  25. );
  26. CREATE TABLE compras (
  27.     id_compra    INTEGER        NOT NULL,
  28.     id_cliente    INTEGER        NOT NULL,
  29.     fecha        DATE        NOT NULL,
  30.     CONSTRAINT pk_compras
  31.         PRIMARY KEY (id_compra)
  32. );
  33. CREATE TABLE detalles_compra (
  34.     id_compra    INTEGER        NOT NULL,
  35.     id_articulo    INTEGER        NOT NULL,
  36.     cantidad        INTEGER        NOT NULL,
  37.     CONSTRAINT pk_detalles_compra
  38.         PRIMARY KEY (id_compra, id_articulo)
  39. );
  40. CREATE TABLE articulos (
  41.     id_articulo    INTEGER        NOT NULL,
  42.     cod_familia    CHAR(2)        NOT NULL,
  43.     cod_subfamilia    CHAR(3)        NOT NULL,
  44.     nombre        VARCHAR2(50)    NOT NULL,
  45.     descripcion    VARCHAR2(50)    NOT NULL,
  46.     precio        NUMBER(12,2)    NOT NULL,
  47.     CONSTRAINT pk_articulos
  48.         PRIMARY KEY (id_articulo)
  49. );
  50. CREATE TABLE subfamilias (
  51.     cod_familia    CHAR(2)        NOT NULL,
  52.     cod_subfamilia    CHAR(3)        NOT NULL,
  53.     nombre        VARCHAR2(50)    NOT NULL,
  54.     CONSTRAINT pk_subfamilias
  55.         PRIMARY KEY (cod_familia, cod_subfamilia)
  56. );
  57. CREATE TABLE familias (
  58.     cod_familia    CHAR(2)        NOT NULL,
  59.     nombre        VARCHAR2(50)    NOT NULL,
  60.     CONSTRAINT pk_familias
  61.         PRIMARY KEY (cod_familia)
  62. );
  63. ALTER TABLE municipios    ADD (
  64.     CONSTRAINT fk_municipios_provincias
  65.         FOREIGN KEY (cod_provincia)
  66.         REFERENCES provincias (cod_provincia)
  67. );
  68. ALTER TABLE clientes    ADD (
  69.     CONSTRAINT fk_clientes_municipios
  70.         FOREIGN KEY (cod_provincia, cod_municipio)
  71.         REFERENCES municipios (cod_provincia, cod_municipio)
  72. );
  73. ALTER TABLE compras ADD (
  74.     CONSTRAINT fk_compras_clientes
  75.         FOREIGN KEY (id_cliente)
  76.         REFERENCES clientes (id_cliente)
  77. );
  78. ALTER TABLE detalles_compra ADD (
  79.     CONSTRAINT fk_detallescompra_compras
  80.         FOREIGN KEY (id_compra)
  81.         REFERENCES compras (id_compra),
  82.     CONSTRAINT fk_detallescompra_articulos
  83.         FOREIGN KEY (id_articulo)
  84.         REFERENCES articulos (id_articulo)
  85.        
  86. );
  87. ALTER TABLE articulos ADD (
  88.     CONSTRAINT fk_articulos_subfamilias
  89.         FOREIGN KEY (cod_familia, cod_subfamilia)
  90.         REFERENCES subfamilias (cod_familia, cod_subfamilia)
  91. );

Saludos!... Hay estan las FK y PK de cada tabla.
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1

Etiquetas: key, primary, 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 09:12.