文章目录

PostgreSQL 11 增加了一个新的编程对象,存储过程(PROCEDURE)。它与存储函数类似,但是没有返回值。存储过程还支持事务,参考文章“PostgreSQL 11 新特性之存储过程”。

PostgreSQL 11 支持在 PL/pgSQL 中定义常量,即 CONSTANT 变量:

name CONSTANT type [ { DEFAULT | := | = } expression ];

如果没有指定默认值,变量初始化为 NULL。常量的值不能在程序中进行修改:

do $$
DECLAREuser_id CONSTANT integer := 10;
BEGINRAISE INFO 'user_id = %', user_id;user_id := 11;
END;
$$ ;
ERROR:  variable "user_id" is declared CONSTANT
LINE 6:   user_id := 11;                                  ^

PostgreSQL 11 支持在 PL/pgSQL 中定义非空(NOT NULL)变量,包括非空常量:

name [CONSTANT] type NOT NULL { DEFAULT | := | = } expression;

如果指定了 NOT NULL,必须在声明时为变量提供一个初始值;另外,不能为这种变量赋予 NULL 值。

do $$
DECLAREuser_name varchar NOT NULL := 'Tony';
BEGINRAISE INFO 'user_name = %', user_name;user_name := NULL;
END;
$$ ;
INFO:  user_name = Tony
ERROR:  null value cannot be assigned to variable "user_name" declared NOT NULL
CONTEXT:  PL/pgSQL function inline_code_block line 6 at assignment

PostgreSQL 11 还支持在 PL/pgSQL 代码块中使用 SET TRANSACTION 语句设置事务的隔离级别。

DO $$
BEGINRAISE INFO '%', current_setting('transaction_isolation') ;COMMIT;SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;RAISE INFO '%', current_setting('transaction_isolation') ;
END;
$$ ;
INFO:  read committed
INFO:  repeatable read
DO

人生本来短暂,你又何必匆匆!点个赞再走吧!

PostgreSQL 11 新特性之 PL/pgSQL 增强相关推荐

  1. PostgreSQL 11 新特性之哈希分区

    文章目录 PostgreSQL 10 引入了声明式分区(declarative partitioning)特性,但是实现的功能有限.PostgreSQL 11 为此带来了许多关于分区的增强功能.首先就 ...

  2. 《深入理解C++11:C++ 11新特性解析与应用》——导读

    前 言 为什么要写这本书 相比其他语言的频繁更新,C++语言标准已经有十多年没有真正更新过了.而上一次标准制定,正是面向对象概念开始盛行的时候.较之基于过程的编程语言,基于面向对象.泛型编程等概念的C ...

  3. java9特性_96.java基础10(java9/10/11新特性)

    126.java 9 新特性1(模块化功能): 1.java模块化 2.java 交互式环境jshell 3.泛型 package com.atguigu.java; import org.junit ...

  4. [翻译]Adobe Flash Player 11新特性

    Adobe Flash Player 11带来了很多改进,您将在网络上看到更多精彩的内容.就像当年Flash Player 7改变了网络视频,ActionScript 3改变了开发Flash内容的方式 ...

  5. A Morden C++ —— C++11新特性指南

    A Morden C++ -- C++11新特性指南 by JOKER on 2013/10/14 不知不觉C++1x,也就是以前的C++0x已经基本达到工业使用的成熟度了,各个编译器的实现也很完整了 ...

  6. C++11新特性(原封不动转载待查)

    C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百 ...

  7. 探索PostgreSQL 14新特性--SEARCH和CYCLE

    探索PostgreSQL 14新特性--SEARCH和CYCLE PG14的SEARCH和CYCLE新功能大大简化了递归查询的方式,本文给出一些基于旅行计划的示例. 创建数据库 本文示例基于任何PG1 ...

  8. IntelliJ IDEA 使用 Java 11新特性以及Java 8 以来的Java 11新特性介绍

    文章目录 Java 11 安装 IDEA 设置 特性1:lambda表达式中允许使用var 特性2: String新增REPEAT 方法,方便拷贝字符串 特性3: 文件读写更方便:readString ...

  9. Java 11 新特性

    2019独角兽企业重金招聘Python工程师标准>>> Java 11 新特性 转载于:https://my.oschina.net/u/3764794/blog/2993127

最新文章

  1. QGLViewer编译过程
  2. hexo的yelee主题使用自定义字体并用字蛛进行字体压缩的sed脚本
  3. 综述 | 事件抽取及推理 (上)
  4. NumPy 数组学习手册·翻译完成
  5. 11g RAC环境下客户端配置TAF
  6. 人脸识别模块关于人脸库大小
  7. 基于MATLAB的运动车辆跟踪检测系统
  8. AD快捷键及常用操作
  9. android 百度基站定位服务器,Android基站定位原理及实现代码
  10. 服务器共享文件夹加密设置方法,共享文件夹加密专家使用教程
  11. hypermedia_Hypermedia REST API简介
  12. 如何培养你自己独特的领导风格?
  13. java base64 加号_Base64 空格,加号问题
  14. 微信第三方平台的开发过程一
  15. 电话号码的字母组合(C++实现)
  16. oracle中update语句更新字段
  17. 基尔霍夫矩阵矩阵树定理学习笔记
  18. Plants vs. Zombies【二分答案】
  19. 汇千网-未来PC长这样?微软正式推出第一台云电脑
  20. mysql练习-数据库安全性与完整性

热门文章

  1. ESP8266实战(一)--wifi时钟的制作
  2. sqlite怎么转换mysql_Django如何把SQLite数据库转换为Mysql数据库
  3. 版权费用外流,中国音乐产业被境外唱片公司收割?
  4. 【SE】Week2 : 个人博客作业
  5. 核心、中文核心、国家期刊、省级期刊、SCI期刊、EI检索,分类介绍
  6. Android 环信 自定义聊天气泡
  7. 【机器人原理与实践(二)】单目摄像头标定与单目测距
  8. 阿里国际站新版关键词你升级了吗?
  9. 【技术备忘录】广和通ADP-L610-Arduino模块实现基于内网穿透的TCP通信
  10. linux中文输入法 2017,ubuntu 16.04 下安装并切换搜狗中文输入法