关于MAC中数据库视图无法修改的问题(navicat)

mac中navicat无法修改视图

本人使用的是mac版navicat premium 12

视图的简单介绍

创建视图的原因是简化查询语句,使查询语句更精简,易懂。但是视图对于查询效率本身不会有什么提高,而且视图查询出来的数据并不会存储在数据库中。而是每次使用视图的时候调用视图的sql语句查询

还有名字相近的物化视图(其实与传统视图并没有毛关系),也就是navicat 中的实体化视图。物化视图是存储在数据库中的真实存在的表(其实就是将select查询出来的数据写入一张表中,相当于一张真实的数据表),但是他不会随着原始数据的改变而刷新,需要手动刷新(据了解,oracle已经可以自动刷新,其他的好像没有)。

视图的修改问题

windows 的版本navicat视图的修改是
CREATE OR REPLACE VIEW “public”."__active_time_view" AS SELECT get_year(at.d)::double AS year,

mac版本中的navicat中
是要先删除(drop掉)原始的视图,再创建视图,对不起,如果你的视图被其他使用(即被其他使用),是不能修改的

给出的方法是
参考windows中的sql语句,手动修改,并在命令行去执行

忘了:如果是视图依赖问题,windows可能也是不可以的,下面会给出详细的情况

特殊的视图依赖情况

其实只要是不修改原来的视图数据,即使视图依赖也是可以直接修改的,如果你没修改原始的数据,比如说添加新的字段,是可以修改成功的。如果发生错误,可能是你在操作的过程中navicat修改了原来数据的数据类型导致的,可以检查一下数据类型是否发生改变

修改视图字段名字(修改视图本身)

对于这个东西,如果依赖,现在是没有什么办法,只能先删除依赖,再进行修改。
尽量不要使用视图的嵌套使用,操作性很差。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值