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

clave foranea serial

Estas en el tema de clave foranea serial en el foro de PostgreSQL en Foros del Web. Buen dia!! tengo en mi base de datos postgresql las tablas: CREATE TABLE requerimiento ( nombre character varying NOT NULL, cod_req serial NOT NULL, CONSTRAINT ...
  #1 (permalink)  
Antiguo 23/05/2012, 08:34
 
Fecha de Ingreso: agosto-2011
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 0
Exclamación clave foranea serial

Buen dia!! tengo en mi base de datos postgresql las tablas:

CREATE TABLE requerimiento
(
nombre character varying NOT NULL,
cod_req serial NOT NULL,
CONSTRAINT requerimiento_pkey PRIMARY KEY (cod_req)
)
WITH (
OIDS=FALSE
);
ALTER TABLE requerimiento OWNER TO postgres;
//------------------------------------------------------------------------------------------------
CREATE TABLE tipo_req
(
cod_tipo integer NOT NULL,
nomb_tipo character varying(100),
cod_req integer,
CONSTRAINT tipo_req_pkey PRIMARY KEY (cod_tipo),
CONSTRAINT tipo_req_cod_req_fkey FOREIGN KEY (cod_req)
REFERENCES requerimiento (cod_req) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
ALTER TABLE tipo_req OWNER TO postgres;
la duda que tengo es al momento de insertar datos en la tablas tipo_req especificamente la clave foranea cod_req; al ser de tipo serial no veo la forma de acceder a ella para conocer su valor o si existe alguna forma de herencia o algo para insertar.....
please alguien me ayuda???
  #2 (permalink)  
Antiguo 23/05/2012, 09:02
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: clave foranea serial

Hola jgms04

Que tiene que ver que sea serial?
Realmente, el tipo serial no existe, tu campo es integer, solo que se ha creado una secuencia por defecto para manejar las inserciones en la tabla requerimiento.

Por lo que veo en las tablas, en la tabla tipo_req debe existir un requerimiento existente (cod_req) en la tabla requerimientos. Pero esa validación la hace por defecto la base de datos.

Espero que tengas clara la declaración de la tabla tipo_req
ON UPDATE CASCADE ON DELETE CASCADE

Si borras o actualizas un registro de esta tabla, estos cambios también se replican en la tabla madre (requerimientos). Esta sentencia es muy util en muchas ocasiones pero bastante peligrosa en otras.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: clave, insert, postgre, serial, sql, foreignkey
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:08.