
postgresql_基础
文章平均质量分 78
rudy_gao
这个作者很懒,什么都没留下…
展开
-
postgresql的匹配模式
PostgreSQL 提供了三种实现模式匹配的方法:传统 SQL 的 LIKE 操作符、SQL99 新增的 SIMILAR TO 操作符、 POSIX 风格的正则表达式。另外还有一个模式匹配函数 substring可用,它可以使用 SIMILAR TO 风格或者 POSIX 风格的正则表达式 LIKEstring LIKE pattern [ESCAPE escape-ch转载 2015-10-19 09:27:09 · 1365 阅读 · 0 评论 -
postgresql 聚合的暗坑
--对于聚合操作,pg约束是不严格的,比如如下sql中,group by 缺少 name,但也能执行postgres=# select id,name ,count(*) from t group by id; id | name | count ----+------+------- 1 | bcd | 1 2 | abc | 1 --现模拟如下原创 2016-01-27 14:51:58 · 7007 阅读 · 1 评论 -
postgresql 分区与优化
--对于分区表constraint_exclusion 这个参数需要配置为partition或onpostgres=# show constraint_exclusion ; constraint_exclusion ---------------------- partition --创建父子表, 用于存储分区数据create table t(id int primary原创 2016-01-08 09:40:22 · 1686 阅读 · 0 评论 -
pg_stat_database的字段tup_returned,tup_fetched含义
--以前一直对tup_returned,tup_fetched的意思有疑惑,不知道两者之间的区别到底是什么,官网解释如下:tup_returned:Number of rows returned by queries in this databasetup_fetched :Number of rows fetched by queries in this database--查post原创 2015-12-22 16:17:54 · 3302 阅读 · 0 评论 -
postgresql 排它约束
--pg支持 EXCLUSION Constraint,排它约束是约束中定义的操作计算结果为false,则不允许插入Exclusion constraints ensure that if any two rows are compared on the specified columns or expressions using the specified operators, at leas原创 2016-01-20 11:36:15 · 4033 阅读 · 0 评论 -
postgresql数据类型
--pg支持范围类型• int4range — Range of integer• int8range — Range of bigint• numrange — Range of numeric• tsrange — Range of timestamp without time zone• tstzrange — Range of timestamp with time zone•原创 2016-01-19 15:10:15 · 1249 阅读 · 0 评论 -
is [not] distinct from 的 null 比较
--在postgresql中经常会比较两个值相同或者不同,但如果比较表达中有一个为null则会比较头痛,如下:postgres=# select null ?column? | ?column? | ?column? | ?column? ----------+----------+----------+---------- | | t原创 2015-11-03 10:19:25 · 2103 阅读 · 0 评论 -
请勿滥用 2PC prepared transaction
我在数据库中开启了一个2PC事务,但是不去管他,会发生什么呢?有什么危害?postgres=# begin;BEGINpostgres=# insert into t6 values (1);INSERT 25622 1postgres=# prepare transaction 'a';PREPARE TRANSACTIONpostgres=# select * from txid_cu转载 2015-10-15 16:54:21 · 609 阅读 · 0 评论 -
PostgreSQL的日志类型
刚开始学习postgres的时候,可能对PostgreSQL中的日志概念比较模糊,到底有多少种日志,哪些日志是能删除的,各自又记录什么样的功能。PostgreSQL中有三种日志,pg_log,pg_xlog和pg_clog。一.安装路径这三种数据库后两者一般的安装路径是$PGDATA/下面的文件夹下,前者默认路径是$PGDATA/pg_log,通常可自己定义路径和文件名转载 2015-10-15 16:12:48 · 853 阅读 · 0 评论 -
PostgreSQL 函数稳定性状态
PostgreSQL 函数在定义的时候有三个稳定性状态可选:IMMUTABLE | STABLE | VOLATILE分别代表,非常稳定,稳定,不稳定。不稳定,函数可以修改数据库的数据,输入同样的参数可以返回不同的结果,同一个QUERY中,如果需要返回该函数的结果,那么每一行都会运算一遍这个函数(后面会有例子)。稳定,函数不可以修改数据库的数据,同一个Q转载 2015-10-28 09:14:35 · 2465 阅读 · 0 评论 -
postgresql时间相关函数
时间与字符串转换to_charto_date, to_timestamp时间的计算日期时间戳timeinterval时间相关函数agecurrent_xxx,localxxxisfinitejustify_xxxextract,date_partdate_trunc跟事务相关的时间戳clock_timestamp, timeofday转载 2015-10-26 15:10:53 · 4514 阅读 · 0 评论 -
postgresql mode 函数
--取分组中出现频率最高的值或表达式, 如果最高频率的值有多个, 则随机取一个.mode() WITHIN GROUP (ORDER BYsort_expression)postgres=# create table test(id int, info text);CREATE TABLEpostgres=# insert into test values (1,'test转载 2015-10-23 09:52:30 · 3010 阅读 · 0 评论 -
PostgreSQL的hstore初步学习
安装hstore扩展:postgres=# create extension hstore;CREATE EXTENSIONpostgres=# 进行测试:建表:postgres=# create table hstore_test(item_id serial, data hstore);NOTICE: CREATE TABLE will c转载 2015-10-22 10:43:55 · 1582 阅读 · 0 评论 -
postgresql upsert 使用范例
--pg 9.5 版本支持 "UPSERT" 特性, 这个特性支持 INSERT 语句定义 ON CONFLICT DO UPDATE/IGNORE 属性,当插入 SQL 违反约束的情况下定义动作,而不抛出错误--创建测试数据表create table t (id int constraint idx_t_id primary key,name varchar(20) constraint原创 2016-01-11 18:37:40 · 17823 阅读 · 0 评论