zmb001 发表于 2020-9-29 00:44

navicat无法修改、更新视图

使用的是navicat15,数据库是postgresql 12。
已经是默认的postgres管理员账号登录。
有表1,字段a,b,c,已经设置了a为主键。
有视图1,select * from 表1,字段同上。

现在用navicat打开视图1,就显示“只读”,怎么改都是只读,请问怎么才能修改这个视图的数据啊?

百度找了很多,有说需要设置主键并选择的(我设置、选择了),有说需要权限的(已经是管理员了),还有不能跨表、不能group by(我这个是最简单的查询,单表,select 全部字段)。


高手知道到底怎么处理吗?快折腾疯了,感谢感谢!!!!!!

nightcat 发表于 2020-9-29 01:49

1.和navicat没有关系;
2.view视图本来就是只读的,你可以理解为视图只是保存source table的影子,没有办法给影子穿衣服,只有给人穿衣服(对表做修改)从而映射到影子,而不能反过来;
3. 对表数据做修改,视图的数据就改变了;
4. 视图可以做跨表、group by 操作。
5. 在Oracle中有同义词(synonyms)的方式实现你的需求,PG里面是没有的,但是可以实现自定义类型;

zmb001 发表于 2020-9-29 07:22

nightcat 发表于 2020-9-29 01:49
1.和navicat没有关系;
2.view视图本来就是只读的,你可以理解为视图只是保存source table的影子,没 ...

谢谢。我目前使用dbeaver和datagrip,都可以在同一个视图中实现更新,这个视图就是最简单的select * from table a。只是由于数据的展示效果上,navicat好一些,所以想问问navicat怎么实现这个功能。
这个可以肯定,不是PG的问题,而是navicat的问题。

fightingmy 发表于 2020-9-29 08:50

zmb001 发表于 2020-9-29 07:22
谢谢。我目前使用dbeaver和datagrip,都可以在同一个视图中实现更新,这个视图就是最简单的select * from ...

应该是pg和navicat产品经理的实现思路不一致而已
ps:个人觉得直接改视图的数据有点奇怪
页: [1]
查看完整版本: navicat无法修改、更新视图