将唯一约束添加到Postgresql视图

时间:2011-12-06 18:32:18

标签: postgresql view

所有

有没有办法为Postgresql视图添加唯一约束?

CREATE OR REPLACE VIEW export AS
 (SELECT nextval('export_view'::regclass)::integer AS pid, getdata.id, getdata.service, getdata.title, getdata.date_taken, getdata.date_inserted, getdata.url, 
    regexp_replace(getdata.description, E'[\\n\\r]+', ' ', 'g') AS description, getdata.geom
   FROM getdata)

我尝试过每一个组合,让这个东西像一个regualr表一样工作,但它仍然无法正常工作。

谢谢, 亚当

2 个答案:

答案 0 :(得分:3)

您可以编写一个函数来检查视图选择的数据的完整性。然后,您将向视图中使用的任何表添加后触发器以调用您的函数。每当自制的完整性约束检查器函数发现违规时,您的触发器可能会引发异常以中止事务。

拥有此触发器构造应模拟视图上的约束,但也非常脆弱。遗憾的是,似乎没有为视图添加约束的原生设施。

答案 1 :(得分:0)

没有视图是表的包装器。你必须在表格上加上约束。