gpt4 book ai didi

postgresql - 如何将主键添加到 View ?

转载 作者:行者123 更新时间:2023-11-29 11:08:44 24 4
gpt4 key购买 nike

我有一个 View ,想将一个属性设为主键。

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

但是报错

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

如何做到这一点?

最佳答案

Postgresql 中的 View 不能有主键。

你基本上是以错误的方式在 View 上创建约束,应该在表上创建约束,但是一些 DBMS 确实支持使用这种语法在 View 上添加约束,比如 oracle:

ALTER VIEW VIEW_NAME ADD PRIMARY KEY PK_VIEW_NAME DISABLE NOVALIDATE;

Oracle Doc For Constraints

You can specify only unique, primary key, and foreign key constraints on views, and they are supported only in DISABLE NOVALIDATE mode.

所以他们只是为了兼容性才支持它,如果你想有一个主键来停止在 filedata 表的 num 列中插入重复数据,你应该这样做通过更改 filedata 表并在其上添加主键,或者从一开始就在 num 列上创建主键的表。

关于postgresql - 如何将主键添加到 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11667508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com