亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-CREATE RULE

2019-09-08 23:32:57
字體:
來源:轉載
供稿:網友
CREATE RULE
名稱
CREATE RULE ― 定義一個新規則 

語法
CREATE RULE name AS ON event
    TO object [ WHERE condition ]
    DO [ INSTEAD ] [ action | NOTHING ]
輸入
name 
創建的規則名. 
event 
事件是 select, update, delete 或 insert 之一. 
object 
對象是 table 或 table.column. 
condition 
任何 SQL WHERE 語句.new 或 current 可以取代記錄變量出現在任何 SQL 允許記錄變量的地方. 
action 
任何 SQL 語句. new 或 current 可以取代記錄變量出現在任何 SQL 允許記錄變量的地方. 
輸出
CREATE 
成功創建規則后的返回信息. 

描述
Postgres 規則系統 允許我們在從數據庫或表中更新,插入或刪除東西時定義一個可選的動作來執行。目前,規則用于實現表視圖?!?
規則的語意是在一個單獨的記錄正被訪問,更新,插入或刪除時,將存在一個舊記錄(用于檢索,更新和刪除)和一個新記錄(用于更新和追加).如果在 ON 子句里所聲明的 event 和在 WHERE 語句里面所聲明的 condition 對于舊記錄都為真,那么action 部分的規則就被執行.但是,舊記錄的各字段值和/或新記錄將先用 current.attribute-name 和 new.attribute-name 取代. 

規則 action 部分執行時的命令和事務標識與激活該規則的用戶命令相同. 

注意
一個關于 SQL 規則的注意事項是順序.如果相同的表名或記錄變量出現在規則的 event,condition 和 action 部分.它們將會被認為是不同的記錄變量.更準確地說,只有 new 和 current 在這些子句中共享記錄變量.比如,下面兩條規則有相同的語意: 
ON UPDATE TO emp.salary WHERE emp.name = "Joe"
    DO 
        UPDATE emp SET ... WHERE ...
ON UPDATE TO emp-1.salary WHERE emp-2.name = "Joe"
    DO 
        UPDATE emp-3 SET ...  WHERE ...
每條規則都可以有可選的標記 INSTEAD.沒有這個標記,action 將在規則的條件(condition?。┎糠值氖录╡vent?。┌l生時作為用戶命令的附加部分執行.否則,動作( action?。┎糠謱⑷〈脩裘顖绦校畬τ诤笳?,action 可以是關鍵字 NOTHING. 
特別要指出的是重寫(rewrite)規則系統既不檢測也不執行循環規則.例如,盡管下面兩條規則都被Postgres 所接受,檢索命令將導致 Postgres 報錯,因為該查詢循環太多次: 

例 19-1. 循環重寫(rewrite)規則樣例. 

CREATE RULE bad_rule_combination_1 AS
    ON SELECT TO emp
    DO INSTEAD 
        SELECT TO toyemp;
CREATE RULE bad_rule_combination_2 AS
    ON SELECT TO toyemp
    DO INSTEAD 
        SELECT TO emp;
下面試圖從 EMP 中檢索將導致 Postgres產生一個錯誤,因為查詢循環了太多圈. 
SELECT * FROM emp;
你必須具有對某個表進行規則定義的權限,這樣才能在其上面定義規則.使用 GRANT 和 REVOKE 更改權限. 
一條 SQL 規則里的對象不能是一個數組引用和不能有參數?!?

除了 "oid" 字段,一個規則里任何地方都不能引用系統表屬性。這意味著在規則里任何地方都不能調用實例/記錄函數(比如, "foo(emp)" 這里 "emp" 是一個表). 

規則系統將規則文本和查詢規劃按文本(text)屬性存儲.這意味著當創建的規則加上各種其內部表達式超過一次存儲頁面請求的值(8KB)時,規則創建可能失敗。

用法
令 Sam 獲得與 Joe 一樣的薪水調整: 
CREATE RULE example_1 AS
    ON UPDATE emp.salary WHERE old.name = "Joe"
    DO 
        UPDATE emp 
        SET salary = new.salary
        WHERE emp.name = "Sam";
當 Joe 獲得薪水調整后,事件將為真以及Joe的當前記錄和提供的新記錄可被執行過程獲得.因此,他的新薪水將代入動作部分,隨后動作部分被執行.這樣Sam的薪水就會和Joe的一樣了. 
當Bill訪問數據庫(薪水)時,令 Bill 獲得 Joe 薪水的信息. 

CREATE RULE example_2 AS
    ON SELECT TO EMP.salary
    WHERE old.name = "Bill"
    DO INSTEAD
        SELECT emp.salary
        FROM emp
        WHERE emp.name = "Joe";
拒絕 Joe 訪問雇員的薪水,當他在鞋部時?。╟urrent_user 返回當前用戶的名稱): 
CREATE RULE example_3 AS
    ON 
        SELECT TO emp.salary
        WHERE old.dept = "shoe" AND current_user = "Joe"
    DO INSTEAD NOTHING;
創建一個玩具部工作的雇員視圖. 
CREATE toyemp(name = char16, salary = int4);

CREATE RULE example_4 AS
    ON SELECT TO toyemp
    DO INSTEAD
        SELECT emp.name, emp.salary
        FROM emp
        WHERE emp.dept = "toy";
All new employees must make 5,000 or less 
CREATE RULE example_5 AS
    ON INERT TO emp WHERE new.salary > 5000
    DO 
        UPDATE NEWSET SET salary = 5000;
兼容性
SQL92
CREATE RULE 語句是 Postgres 語言的擴展.在 SQL92 里沒有 CREATE RULE 語句.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影免费观看高清完整| 国产亚洲精品久久久久久| xxx欧美精品| 日韩在线免费视频| 日韩久久精品成人| 亚洲剧情一区二区| 国产精品中文字幕在线观看| 亚洲成人网av| 欧美激情一级精品国产| 亚洲二区在线播放视频| 日韩免费在线视频| 久久久久国产视频| 欧美xxxx18国产| 成人精品一区二区三区电影免费| 中文字幕亚洲一区二区三区| 亚洲色图第三页| 亚洲第一中文字幕在线观看| 成人福利视频在线观看| 在线视频精品一| 欧美黑人国产人伦爽爽爽| 成人www视频在线观看| 久久久免费电影| 久久久久久久久久久人体| 中文日韩在线视频| 国外成人在线视频| 亚洲天堂av女优| 久久精品一本久久99精品| 午夜欧美不卡精品aaaaa| 欧美在线免费观看| 国内精品一区二区三区| 91沈先生在线观看| 91香蕉国产在线观看| 精品久久久视频| 午夜精品一区二区三区在线视频| 亚洲欧美另类中文字幕| 欧美成人精品一区| 欧美日韩美女在线观看| 久久青草精品视频免费观看| 亚洲黄色av网站| 亚洲人高潮女人毛茸茸| 狠狠爱在线视频一区| 午夜免费在线观看精品视频| 亚洲福利在线观看| 日韩免费黄色av| 国产色婷婷国产综合在线理论片a| 97在线视频免费观看| 91精品国产高清自在线看超| 国产免费一区二区三区在线观看| 国产精品91久久久| 国产欧美va欧美va香蕉在| 成人欧美一区二区三区黑人| 日韩精品免费在线观看| 国产视频精品免费播放| 欧美专区在线观看| 亚洲国产精品久久久久| 美女少妇精品视频| 亚洲第一页中文字幕| 亚洲欧美999| 国产精品wwww| 欧美午夜影院在线视频| 久久天天躁夜夜躁狠狠躁2022| 国自产精品手机在线观看视频| 亚洲欧美国产一本综合首页| 国产v综合ⅴ日韩v欧美大片| 亚洲性线免费观看视频成熟| 91亚洲人电影| 亚洲视频axxx| 最近免费中文字幕视频2019| 欧美一二三视频| 这里只有视频精品| 日韩美女视频在线观看| 国产日韩精品视频| 欧美激情国产日韩精品一区18| 亚洲女人天堂网| 亚洲欧美一区二区精品久久久| 欧美日韩一区免费| 亚洲精品自拍偷拍| 久久精品久久久久久| 成人亲热视频网站| 亚洲精品www久久久久久广东| 国产中文字幕91| 日韩av电影在线播放| 久久久亚洲国产天美传媒修理工| 中文字幕9999| 欧美老女人性生活| 8050国产精品久久久久久| 国产精品久久久久久久久久新婚| 亚洲欧洲在线免费| 国产丝袜一区二区| 精品呦交小u女在线| 日韩国产在线看| 成人网页在线免费观看| 日韩电影中文字幕在线观看| xxxx欧美18另类的高清| 日韩中文字幕在线播放| 久久青草福利网站| 毛片精品免费在线观看| 97国产在线视频| 不卡中文字幕av| 欧美日本在线视频中文字字幕| 日韩精品丝袜在线| 精品日本高清在线播放| 国产精品嫩草视频| 久久久久久久久久久久av| 久久视频在线视频| 日本午夜精品理论片a级appf发布| 亚洲一级黄色av| 久久久999精品免费| 成人亲热视频网站| 亚洲一级片在线看| 这里只有精品视频| 黄色成人在线免费| 欧美精品videos另类日本| 97国产精品免费视频| 亚洲精品国产福利| 亚洲综合中文字幕在线| 国产丝袜一区二区三区免费视频| 91视频免费网站| 欧美亚洲成人精品| 毛片精品免费在线观看| 91精品久久久久久久久久久久久久| 国产一区香蕉久久| 亚洲精品av在线播放| 神马国产精品影院av| 亚洲va欧美va国产综合剧情| 成人av在线天堂| 国产美女直播视频一区| 琪琪亚洲精品午夜在线| 国产精品v日韩精品| 日韩高清电影免费观看完整| 国产视频观看一区| 亚洲国产精品久久久久秋霞不卡| 久久在线视频在线| 欧美极品欧美精品欧美视频| 91伊人影院在线播放| 久久中文字幕在线| 欧美性视频精品| 成人网页在线免费观看| 久久国产精品久久久久久久久久| 久久久噜噜噜久久久| 免费99精品国产自在在线| 久久视频在线免费观看| 欧美孕妇毛茸茸xxxx| 久久久精品在线观看| 日韩电影中文 亚洲精品乱码| 久久精品中文字幕免费mv| 欧美日韩亚洲视频一区| 久久不射电影网| 亚洲自拍av在线| 国产精品第一视频| 激情久久av一区av二区av三区| 美女999久久久精品视频| 精品亚洲夜色av98在线观看| 国产日本欧美一区二区三区| 亚洲全黄一级网站| 成人黄色中文字幕| 粗暴蹂躏中文一区二区三区| 久久五月情影视| 欧美性猛交xxxx免费看漫画| 一区二区三区无码高清视频| 欧美一级淫片丝袜脚交| 中文字幕日韩av综合精品| 亚洲精品电影网| 日本精品久久中文字幕佐佐木|