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;
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.