PosggreSQL常用函数语法
1. 简介
2. 软件准备
Start:2011.01.24 Updated:2011.04.09 王凡 wangfan
wf141732@sohu.com woshiwangfan@gmail.com 版本 修改日期 内容 1.0 2011.04.09 创建
1.1. 环境信息 PostgreSQL:9.0.2 1.2. 相关文档
2.1. 软件安装
见《PostgreSQL与Python》
3. 函数
3.1. 当前时间
获取当前日期: select CURRENT_DATE;
获取当前时间: select CURRENT_TIME;
获取日期时间:
select CURRENT_TIMESTAMP;
3.2. 唯一列索引
Oracle里面有rowid,在psql里面用ctid替代下!
2
4. 语法
3.3. 多项选择
在oracle里面有decode,psql里面使用标准的case..when Oracle: decode (value, 0, 'zero', 1, 'one', 'unknown') Psql: CASE value WHEN 0 THEN 'zero' WHEN 1 THEN 'one' ELSE 'unknown' END
4.1. 外连接
t1是主表,需要取出t1中的所有数据 SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); 相当于oracle中的 Select * from t1,t2 where t1.col=t2.col(+)
4.2. 创建trigger函数
和oracle很类似,和oracle不同的是在数据行的时候new old之前没有: CREATE OR REPLACE FUNCTION test() RETURNS trigger AS $BODY$ declare V_FLAG VARCHAR(1); 3
begin
V_id NUMERIC(10);
if tg_op = 'INSERT' then end if;
V_id := new.id; V_FLAG := 'I';
if tg_op = 'UPDATE' then end if;
V_id := new.id; V_FLAG := 'I';
if tg_op = 'DELETE' then end if;
V_id := old.id; V_FLAG := 'D';
insert into public.J$jobs_job ( ) select
JRN_SUBSCRIBER, '0', V_FLAG,
JRN_SUBSCRIBER, JRN_CONSUMED, JRN_FLAG, JRN_DATE, id
4
CURRENT_TIMESTAMP, V_id
5. 常见问题
from public.SNP_SUBSCRIBERS where JRN_TNAME = 'public.jobs_job'; RETURN new; END $BODY$ LANGUAGE plpgsql VOLATILE COST 100;
4.3. 创建trigger
在创建完trigger 函数后建立trigger
CREATE TRIGGER t$_job AFTER INSERT OR DELETE OR UPDATE ON public.jobs_job FOR EACH ROW EXECUTE PROCEDURE test();
4.4. 删除trigger
删除trigger很简单
DROP TRIGGER name ON table [ CASCADE | RESTRICT ]; Drop trigger t$_job on public.jobs_job
5.1.
5
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务