码迷,mamicode.com
首页 > 数据库 > 详细

postgresql 重建视图脚本

时间:2015-07-03 10:45:25      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

 环境;

psql (9.3.6)
输入 "help" 来获取帮助信息.
root=# \d change_me
         资料表 "public.change_me"
   栏位    |         型别          | 修饰词 
-----------+-----------------------+--------
 too_short | character varying(50) | 
root=# ALTER TABLE change_me ALTER too_short TYPE VARCHAR(30);
错误:  不能使用视图或规则改变一个字段的类型
描述:  规则 _RETURN 在 视图 v_change_me 倚赖于字段 "too_short"

目的: 更改too_short类型为 VARCHAR(30) 从此处得出 视图 v_change_me 依赖此表.

一、 安装脚本:

   前提: 已安装好psql客户端

#curl firxiao.com/sh/recreate_views.sh -o  recreate_views.sh|chmod +x recreate_views.sh

操作步骤如下:

 二、  配置脚本:

   编辑脚本 将以下内容更改为你自己 然后保存退出

###config
HOST="ip or hostname"
DB_NAME="dbname"
DB_USER="user"
DB_PASSWORD="password"
###

三、  查看帮助

#./recreate_views.sh 
Useage: recreate_views.sh: -b <view_name> #backup view and dependent objects  
Useage: recreate_views.sh: -d <view_name> #delete view and dependent objects   
Useage: recreate_views.sh: -c  "<sql>"    #exec custom sql command   
Useage: recreate_views.sh: -r <view_name> #restore view and dependent objects

 

四、 测试是否能正常连接

#./recreate_views.sh -c "\dt"
         List of relations
 Schema |   Name    | Type  | Owner 
--------+-----------+-------+-------
 public | change_me | table | root
(1 row)

五、 备份视图

#./recreate_views.sh -b  v_change_me
backup v_change_me to v_change_me_bak.sql
backup v_change_me_too to v_change_me_bak.sql

  将自动将删除的视图及依赖备份到 视图名_bak.sql

 六、删除视图

#./recreate_views.sh -d  v_change_me
注意:  递归删除 视图 v_change_me_too
DROP VIEW

更改表字段类型

#./recreate_views.sh -c "ALTER TABLE change_me ALTER too_short TYPE VARCHAR(30);"
ALTER TABLE

七、恢复已删视图

#./recreate_views.sh -r  v_change_me
SET
SET
SET
SET
SET
SET
SET
错误:  视图 "v_change_me" 不存在
SET
CREATE VIEW
SET
SET
SET
SET
SET
SET
SET
错误:  视图 "v_change_me_too" 不存在
SET
CREATE VIEW

八、查看表类型

./recreate_views.sh -c "\d v_change_me"
           View "public.v_change_me"
  Column   |         Type          | Modifiers 
-----------+-----------------------+-----------
 too_short | character varying(30) |


至此已完成了对表字段类型的更改


postgresql 重建视图脚本

标签:

原文地址:http://my.oschina.net/firxiao/blog/473856

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!