`
吕不为
  • 浏览: 69027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Postgresql8.5新版本特性

阅读更多
Postgresql8.5增加了很多新的特性和功能,非常不错.
Alpha2版本已经出来了,为了实验新的功能,于是在Freebsd8上装了上去.安装非常简单

1
源代码下载下来后,直接
./configure
make
make install
就可以装上去了.

2
然后用
dell#pw useradd pgsql
#passwd pgsql
pgsql
新增一个用户pgsql并把密码也设成pgsql

3
然后再
cd /usr/local/
chown -R pgsql pgsql
把pgsql目录的用户主属性改成pgsql用户

4然后再
cd /usr/local/pgsql/bin
./initdb -D /usr/local/pgsql/data
初始化数据库集群,创建运行环境

4.1
如果你需要从网络访问数据库,则还需要打开远程访问权限
vi ../data/postgresql.conf
把监听的端地址listen_address的值从localhost改成*号就行了.
4.2
然后
vi ../data/pg_hba.conf加上认证的机制
host  all all 192.168.1.0/24 md5
这样,你的局域网内的所有计算机都就可以访问你的这个服务器了.注意,192.168.1这个要
改成你自己的网络的,不可照搬.

5然后再
./pg_ctl start -D /usr/local/pgsql/data
启动数据库

6然后再用
./psql postgres来登录就可以了.如果需要远程访问,还要把pgsql用户修改成你自己的密码.
使用alter role命令即可.

要注意的是pgadmin3的发布版是没有办法连接8.5的,连上以后会因为系统表结构字段已改过,而
无法显示数据库信息.需要从SVN中下载最新版本才行.不喜欢用命令行的同学可以用我写的一个
数据库管理工具来进行实验.

在8.5的特性列表中,有很多的特性,这里我只说几个我觉的很有用的并且我很感兴趣的

1 SQL兼容的触发器语法:用来限定仅仅更新指定的列
CREATE TRIGGER check_update
    BEFORE UPDATE OF balance ON accounts
    FOR EACH ROW
    EXECUTE PROCEDURE check_account_update();

2 创建表时的模板选项,可以用INCLUDING或EXCLUDING选项
CREATE TABLE TEST2(LIKE TEST INCLUDING DEFAULTS);
这样,生成的TEST2表就会把TEST表的字段默认值给带过来,默认是不带的.通过指定的选项,可以控制
新建的表究竟带哪些东西到新表过来.
其中可以包含的有
DEFAULTS 默认值
COMMENTS 注释
CONSTRAINTS 约束
STORAGES 存储机制和填充因子
INDEXES 索引
ALL 所有

3 对COPY语句增加了更多的支持格式,如导出的格式,分隔符,转义的字符等很多功能.
  这个功能很好,可以对输出的文件内容结构进行更多的控制

4 修改了窗口函数的PARTITION BY和ORDER BY子句
5 修复WITH RECURSIVE语句嵌套的BUG
6 增加Unicode字符串的转义支持.

7DROP COLUMN和DROPCONSTRAINT支持 IFEXISTS支持,
  以避免在列和约束不存在的时候产生异常.此功能在重复运行脚本时比较好用.
  ALTER TABLE T6 DROP COLUMN IF EXISTS COL1;
  这个功能太有用了,即使删除不存在的,也只会有一个Notice的提示,如果前台使用
  应用程序则不会出现错误,程序会忽略这个提示,而以前就会程序出现异常.以前如果
  想不产生异常,就要先去系统表中查一下这个表是否有这个字段.然后再决定操作.

8 唯一索引可以被推迟使用,主要用在ID=ID+1的功能上.
这个功能是我最期待的功能,简直太有必要的.
CREATE TABLE T10(A INT UNIQUE DEFERRABLE INITIALLY DEFERRED,B VARCHAR(10));
INSERT INTO T10 VALUES(1,'A');
INSERT INTO T10 VALUES(2,'B');
INSERT INTO T10 VALUES(3,'C');
UPDATE T10 SET A=A+10;
可以更新成功  或者:
BEGIN;
UPDATE T10 SET A=2 WHERE B='A';
UPDATE T10 SET B=1 WHERE B='B';
COMMIT;
即交换两个唯一值,以前一直没能解决的问题,现在终于解决了.

9  增加INFORMATION_SCHEMA分类支持,兼容SQL2008标准
10 允许使用*号在CSV导出时,以导出引出所有的列
11 对二进制字段的16进制格式的的输入输出支持.

12 支持DO语句
这个功能太有用了,以前想要写一段代码执行一下,那可是麻烦了,先要创建一个函数,然后在函数中写
然后再调用函数,然后再删除函数,Sqlserver和Oracle和Sybase10年前都支持的东西,PG竟然不支持.
现在终于支持了.可以直接写代码让PG运行了.
DO
$$
BEGIN
UPDATE T10 SET A=A+1;
UPDATE T10 SET A=A+2;
END
$$;
就可以执行这段代码了.修改和执行起来非常方便.可以把语句直接保存在SQL文件,需要的时候调进来执行
而不是先建一个函数一,再执行函数,再删除函数,对环境没有一点污染.

13 允许函数参数使用AS指示符

14 允许游标使用MOVE FORWARD n,MOVE BACKWARD n
    MOVE FORWARD ALL, MOVE BACKWARD ALL
    来对游标进行移动.
   这个功能对于跳行前进这种东西很有用,可以一下子跳几行前进

15 dblink支持异步通知功能了.


0
0
分享到:
评论

相关推荐

    最新版linux apache-tomcat-8.5.69.tar.gz

    - 支持Java EE 8 Web Profile,提供Servlet 4.0、JSP 2.3和EL 3.0等新特性。 - 提供了NIO2连接器,提高了处理大量并发请求的能力。 - 更好的线程管理,减少了内存消耗,提高了整体性能。 2. **Linux环境下的安装...

    apache-tomcat-8.5.84

    Apache Tomcat 8.5.84 版本包含了对Java EE 8规范的支持,包括Servlet 4.0、JSP 2.3、EL 3.0等,这些版本提供了更多的API和特性,增强了性能和安全性。例如,Servlet 4.0引入了HTTP/2支持,提高了通信效率,降低了...

    Java 通用代码生成器光 2.2.0 智慧版本 Beta7 版,改进编译检查

    前端支持图片功能,前端增加Excel,PDF,Word数据导出格式,前端增强基地址配置特性。使用时空之门前端代码生成器4.6.0 Beta2的生成引擎。 目前智慧之光Beta7支持sbmeu,smeu和msmeu三种技术栈。支持MariaDB,MySQL,...

    springboot2.0版本中文文档

    SpringBoot2.0版本是该框架的一个重要里程碑,引入了许多新特性、改进和性能优化,使得开发者能更高效地构建基于Spring的应用程序。 在SpringBoot2.0中,最显著的变化是对Spring Framework 5.0的支持。Spring 5带来...

    python3.6.5一键离线安装包

    如果需要安装其他版本的Python,用户可以自行替换脚本中的源码包,但必须确保新版本与所有依赖项兼容。 总的来说,Python 3.6.5一键离线安装包是为了解决在特定环境下快速、便捷地部署Python环境的需求。它简化了...

    springboot reference guide 2.0中文文档

    《SpringBoot参考指南2.0中文文档》是Java开发者的重要参考资料,它详尽地阐述了SpringBoot框架在2.0版本中的各项特性和使用方法。SpringBoot是Spring框架的一个子项目,旨在简化Spring应用的初始搭建以及开发过程,...

    spring-boot-reference-1.5.7

    《Spring Boot 1.5.7参考文档》是Java开发者必备的参考资料,它详细阐述了Spring Boot 1.5.7版本的核心特性和使用方法。Spring Boot作为一个快速开发框架,旨在简化Spring应用的初始搭建以及开发过程,通过预设默认...

    工作流引擎-选型 (各工作流对比)

    6版本虽新增了一些节点和属性,但这些新特性在当前设计器中尚无法实现。这意味着Flowable更适合那些熟悉Eclipse开发环境的专业开发者使用,而对于非技术人员的支持较弱。 **小结** Camunda的设计工具能够更好地...

    MySQL中文参考手册.chm

    8.4.4.3 选择特定列 8.4.4.4 排序行 8.4.4.5 日期计算 8.4.4.6 NULL值操作 8.4.4.7 模式匹配 8.4.4.8 行计数 8.4.5 使用多个数据库表 8.5 获得数据库和表的信息 8.6 ...

    go web编程

    - **基础知识总结**:理解 Go 语言的核心特性,为后续 Web 开发打下坚实的基础。 #### 三、Web 基础 **3.1 Web 工作方式** - **客户端/服务器模型**:请求与响应的过程。 - **HTTP 协议**:GET、POST 请求方法...

Global site tag (gtag.js) - Google Analytics