zoukankan      html  css  js  c++  java
  • postgresql 视图

    一、创建视图

    create or replace view vw_users as select * from users;

    二、通过定义规则来更新视图

    create rule vw_users_upd as on update to vw_users do instead update users set user_email=New.user_email;

    update vw_users set user_email='zhangsan@163.com' where id=1;

    注意,经过测试在9.5以上的版本可以直接使用update更新,不需要创建规则,9.2版本是需要的。

    三、instead of 和before/after的区别,

    1、insert of只能处理行级别的触发器,例如对视图的增、删、改等,例如

    create or replace function vw_users_insert_trigger()

    returns trigger as $$

    begin

    insert into users values(new.id,new.user_name,new.password,new.user_email,new.user_mark);

    return null;

    end;

    $$

    language plpgsql;

    create or replace trigger insert_vw_users_trigger

    instead of insert on vw_users

    for each row execute procedure vw_users_insert_trigger();

    2、before/after是处理语句级别的触发器,示例可以参考触发器文章

  • 相关阅读:
    HDU 1333 基础数论 暴力
    HDU 1299 基础数论 分解
    HDU 1211 EXGCD
    HDU 3507 单调队列 斜率优化
    博弈
    std:ios::sync_with_stdio(false);
    NBUT[1220] SPY
    nbut1217 Dinner
    poj2236Wireless Network
    ZOJ Problem Set
  • 原文地址:https://www.cnblogs.com/xiaofoyuan/p/5263966.html
Copyright © 2011-2022 走看看