Creación de tablas en postgres con SQL

Creación tabla en postgres con SQL
Hola. Tengo un modelo de relaciones que muestra access, en el cual hay dos tablas (A y B)que tienen cada una varios campos como claves primarias, el problema es que uno de los campos de la tabla A tiene referencia muchos a muchos con otro campo de la tabla B y al "ejecutar" la siguiente: CREATE TABLE PREINSCRITOS (PRE_DOC_IDENT double precisión NOT NULL, PRE_ID_CURSO char(5) NOT NULL REFERENCES PROGRAMACIÓN(ID_CURSO) ON UPDATE CASCADE, PRE_GRUPO integer NOT NULL REFERENCES PROGRAMACIÓN(GRUPO) ON UPDATE CASCADE, PRE_ANIO integer NOT NULL REFERENCES PROGRAMACIÓN(ANIO) ON UPDATE CASCADE, CREADOR varchar(50) NOT NULL, FECHA_CREADO timestamp with time zone, PRIMARY KEY (PRE_DOC_IDENT, PRE_ID_CURSO, PRE_GRUPO, PRE_ANIO)); sale el error: ERROR: UNIQUE constraint matching given keys for referenced table "programacion" not found
Por favor recomiéndame como hago la instrucción SQL. Gracias

1 Respuesta

Respuesta
1
Por lo que puedo percibir, esta tabla PREINSCRITOS es una relación, antes de crear las relaciones debes crear las entidades, esa es una observación. Segundo, cuando haces una referencia al identificador de otra tabla, debes indicar en la consulta que el/los identificadores de esta tabla se relacionan con el/los identificadores de la otra tabla, esto se hace escribiendo FOREIGN KEY (indica que es una clave externa.
La forma de usar es:
CREATE TABLE (campo1 tipo ..., ...etc..., CONSTRAINT pre_pk PRIMARY KEY (campo1,...), CONSTRAINT pre_curso_fk FOREIGN KEY (campo1) REFERENCES CURSO(campo1));
LAs Foreign Key y Primary Key deben tener un nombre, porque estos son guardados en el catalogo de tu base de datos y cada nombre debe ser distinto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas