una tipos tablas tabla simple relaciones que puede llena llave foranea datos crear como clave campo postgresql postgresql-8.4

postgresql - tablas - tipos de datos en access



¿Cómo agregar clave principal a la vista? (2)

Tengo una vista y quiero convertir un atributo en una clave principal.

CREATE VIEW filedata_view AS SELECT num PRIMARY KEY, id, ST_TRANSFORM(the_geom,900913) AS the_geom FROM filedata

Pero consigue un error

ERROR: syntax error at or near "PRIMARY" LINE 2: AS SELECT num PRIMARY KEY, id, ST_TRANSFORM(the_geom,900913)...

Utilice postgesSQL 8.4.

¿Como hacer esto?


Las vistas en Postgresql no pueden tener claves primarias.

básicamente estás en el camino incorrecto para crear restricciones en una Vista, las restricciones deben crearse en tablas, pero algunos DBMS sí admiten la adición de restricciones en Vistas como Oracle con esta sintaxis:

ALTER VIEW VIEW_NAME ADD PRIMARY KEY PK_VIEW_NAME DISABLE NOVALIDATE;

Oracle Doc Para Restricciones

Puede especificar solo restricciones únicas, clave principal y clave externa en las vistas, y solo se admiten en el modo DESACTIVAR NOVALIDAR.

por lo tanto, solo lo admiten por compatibilidad, si desea tener una clave principal para detener la inserción de datos duplicados en la columna num en la tabla de datos de archivo , debe hacerlo modificando la tabla de datos de archivo y agregar una clave principal o creando su tabla con clave primaria en la columna num desde el inicio.


Postgresql no admite restricciones en las vistas. Otros DBMS (por ejemplo, Oracle) sí lo admiten, pero Postgresql no lo hace.