PosggreSQL 常用函数

472756841

贡献于2015-06-16

字数:0 关键词: PostgreSQL 数据库服务器 SQL

PosggreSQL常用函数语法 Start:2011.01.24 Updated:2011.04.09 王凡 wangfan wf141732@sohu.com woshiwangfan@gmail.com 版本 修改日期 内容 1.0 2011.04.09 创建 1. 简介 1.1. 环境信息 PostgreSQL:9.0.2 1.2. 相关文档 2. 软件准备 2.1. 软件安装 见《PostgreSQL与Python》 2 3. 函数 3.1. 当前时间  获取当前日期: select CURRENT_DATE;  获取当前时间: select CURRENT_TIME;  获取日期时间: select CURRENT_TIMESTAMP; 3.2. 唯一列索引 Oracle里面有rowid,在psql里面用ctid替代下! 3 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. 语法 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); 4 V_id NUMERIC(10); begin if tg_op = 'INSERT' then V_id := new.id; V_FLAG := 'I'; end if; if tg_op = 'UPDATE' then V_id := new.id; V_FLAG := 'I'; end if; if tg_op = 'DELETE' then V_id := old.id; V_FLAG := 'D'; end if; insert into public.J$jobs_job ( JRN_SUBSCRIBER, JRN_CONSUMED, JRN_FLAG, JRN_DATE, id ) select JRN_SUBSCRIBER, '0', V_FLAG, 5 CURRENT_TIMESTAMP, V_id 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. 常见问题 5.1.

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档