PostgreSQL - postgresql - problema para crear tablas

 
Vista:
sin imagen de perfil

postgresql - problema para crear tablas

Publicado por patito (2 intervenciones) el 30/09/2009 20:26:39
hola... tengo problemas para crear una tabla que usa claves foraneas de otras tabals

sentencias de postgreSQL 8.3:
reate database mod_compras;


/*TABLA CLASIFICACION*/

create table clasificacion
(
clasificacion_cod numeric (10) primary key check (clasificacion_cod >0),
clasificacion_descri varchar (40) not null
);

select * from clasificacion;

/*TABLA PRODUCTOS*/

create table productos
(
produc_cod numeric (10) not null check (produc_cod >0),
produc_descri varchar (40) not null,
produc_precio_costo numeric (10) not null check(produc_precio_costo > 0),
clasificacion_cod numeric (10) not null references clasificacion (clasificacion_cod),
produc_precio_venta numeric (10) not null check(produc_precio_venta > 0),
EXISTENCIA NUMERIC (10) NOT NULL CHECK (EXISTENCIA >= 0),
EXISTENCIA_MINIMA NUMERIC (10) NOT NULL CHECK (EXISTENCIA_MINIMA >= 0),

constraint produc_Pkey primary key (produc_cod),
constraint produc_Fkey foreign key (clasificacion_cod) references clasificacion (clasificacion_cod)
);

select * from productos;

/*TABLA PEDIDO_COMPRA_CAB*/

create table pedido_compra_cab
(
ped_comp_cod numeric (10) primary key check (ped_comp_cod >0),
ped_comp_descri varchar (40) not null,
ped_comp_fecha date not null,
estado_ped bool not null
);

select * from pedido_compra_cab;

/*TABLA PEDIDO_COMPRA_DET*/

create table pedido_compra_det
(
ped_comp_cod numeric (10) not null references pedido_compra_cab (ped_comp_cod),
produc_cod numeric (10) not null references productos (produc_cod),
cantidad numeric (10) not null check (cantidad>0),
existencia_actual NUMERIC (10) NOT NULL CHECK (EXISTENCIA_ACTUAL >= 0),

constraint ped_det_pk primary key ( ped_comp_cod, produc_cod)
);

select * from pedido_compra_det;

/*TABLA PROVEEDOR*/

create table proveedor
(
provee_cod numeric (10) primary key check (provee_cod>0),
razon_social varchar (40) not null,
ruc varchar (15) not null,
direccion varchar (40) not null,
telefono varchar (40) not null,
email varchar (40) not null
);

select * from proveedor;

/*TABLA ORDEN_COMPRA_CAB*/

create table orden_compra_cab
(
orden_comp_cod numeric (10) not null check (orden_comp_cod >0),
orden_comp_descri varchar (40) not null,
ped_comp_cod numeric (10) not null references pedido_compra_cab (ped_comp_cod),
provee_cod numeric (10) not null references proveedor (provee_cod),
orden_comp_fecha date not null,
/*estado_orden bool not null,*/
condicion_orden bool not null,

constraint orden_cab_pk primary key ( orden_comp_cod, provee_cod, ped_comp_cod)
);

select * from orden_compra_cab;



/*TABLA ORDEN_COMPRA_DET*/

create table orden_compra_det
(
orden_comp_cod numeric (10) not null ,
orden_comp_item numeric (10) not null check (orden_comp_item >0),
ped_comp_cod numeric (10) not null references pedido_compra_cab (ped_comp_cod),
provee_cod numeric (10) not null references proveedor(provee_cod),
produc_cod numeric (10) not null references productos (produc_cod),
cantidad numeric (10) not null check (cantidad >0),

constraint orden_det_pk primary key ( /*orden_comp_cod, ped_comp_cod, */orden_comp_item,produc_cod/*,provee_cod*/),
constraint orden_cab_fk foreign key (orden_comp_cod, provee_cod, ped_comp_cod)
references orden_compra_cab (orden_comp_cod, provee_cod, ped_comp_cod)
);

select * from orden_compra_det;


/*TABLA COMPRA_CAB*/

create table compra_cab
(
Nro_fact_comp numeric (10) not null check (Nro_fact_comp >0),
fecha_compra date not null,
ped_comp_cod numeric (10) not null references pedido_compra_cab (ped_comp_cod),
provee_cod numeric (10) not null references proveedor(provee_cod),
orden_comp_cod numeric (10) not null,
anulado bool not null,
condicion_comp bool not null,

constraint compra_cab_pkey primary key (Nro_fact_comp, fecha_compra),
constraint compra_cab_fk foreign key (orden_comp_cod, provee_cod, ped_comp_cod)
references orden_compra_cab (orden_comp_cod, provee_cod, ped_comp_cod)
);

select * from compra_cab;


////////////desde aca tengo problemas///////////////

///////////////////////////////////////////* NO FUNCIONA*//////////////////////////////////////////////////
/*TABLA COMPRA_DET*/
create table compra_det
(
Nro_fact_comp numeric (10) not null references compra_cab (nro_fact_comp),
fecha_compra date not null references compra_cab (fecha_compra),
item_compra numeric (10) not null check (item_compra >0),
produc_cod numeric (10) not null references productos (produc_cod),
cantidad_comp numeric (10) not null check (cantidad >0),
precio_compra numeric (10) not null check (precio_compra >0),
/*ped_comp_cod numeric (10) not null references pedido_compra_cab (ped_comp_cod),
provee_cod numeric (10) not null references proveedor(provee_cod),
orden_comp_cod numeric (10) not null,*/

constraint compra_det_pkey primary key (Nro_fact_comp, fecha_compra,produc_cod,item_compra)
references compra_cab (Nro_fact_comp, fecha_compra)
/*constraint compra_det_fk foreign key (Nro_fact_comp, fecha_compra,orden_comp_cod, provee_cod, ped_comp_cod)
references compra_cab (Nro_fact_comp, fecha_compra,orden_comp_cod, provee_cod, ped_comp_cod)*/
);

select * from compra_det;
drop table compra_det

/*TABLA CUENTAS A PAGAR*/
create table cta_pagar
(
cta_pagar_cod numeric (10) not null check (cta_pagar_cod >0),
Nro_fact_comp numeric (10) not null references compra_cab (nro_fact_comp),
fecha_compra date not null references compra_cab (fecha_compra),
nro_cuota numeric (10) not null check (nro_cuota >0),
cta_descri varchar (40) not null,
fecha_venci date not null check (fecha_venci > fecha_compra),
monto_pagar numeric (10) not null check (monto_pagar >0),
estado_cta bool not null,

constraint cta_pagar_pkey primary key (cta_pagar_cod, nro_cuota,cta_descri),
constraint cta_pagar_fkey foreign key (Nro_fact_comp, fecha_compra)
references compra_cab (Nro_fact_comp, fecha_compra)

select * from cta_pagar;
);

/*TABLA IVA COMPRA*/
create table iva_compra
(
iva_compra_cod numeric (10) not null check (iva_compra_cod >0),
produc_cod numeric (10) not null references productos (produc_cod),
fecha_compra date not null references compra_cab (fecha_compra),
item_compra numeric (10) not null references compra_det (item_compra),
Nro_fact_comp numeric (10) not null references compra_cab (nro_fact_comp),
iva_comp_descri varchar (30) not null,
exenta numeric (10) not null,
grabada_5 numeric (10) not null,
grabada_10 numeric (10) not null,
total_iva numeric (10) not null,

constraint iva_pkey primary key (iva_compra_cod),
constraint iva_fkey foreign key (produc_cod,Nro_fact_comp, fecha_compra,item_compra)
references compra_det (produc_cod,Nro_fact_comp, fecha_compra,item_compra)

select * from iva_compra;
);
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
sin imagen de perfil

RE:postgresql - problema para crear tablas

Publicado por patito (2 intervenciones) el 01/10/2009 19:09:36
si me ayudan les voy a agradecer inmensamente...
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