postgresql 重建視圖指令碼

來源:互聯網
上載者:User

標籤:

 環境;

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

操作步驟如下:

 二、  配置指令碼:

   編輯指令碼 將以下內容更改為你自己 然後儲存退出

###configHOST="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_mebackup v_change_me to v_change_me_bak.sqlbackup v_change_me_too to v_change_me_bak.sql

  將自動將刪除的視圖及依賴備份到 視圖名_bak.sql

 六、刪除視圖

#./recreate_views.sh -d  v_change_me注意:  遞迴刪除 視圖 v_change_me_tooDROP VIEW

更改表欄位類型

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

七、恢複已刪視圖

#./recreate_views.sh -r  v_change_meSETSETSETSETSETSETSET錯誤:  視圖 "v_change_me" 不存在SETCREATE VIEWSETSETSETSETSETSETSET錯誤:  視圖 "v_change_me_too" 不存在SETCREATE VIEW

八、查看錶類型

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


至此已完成了對錶欄位類型的更改


postgresql 重建視圖指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.