PostgreSQL 11 新特性之 PL/pgSQL 增强
文章目录
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 增强相关推荐
- PostgreSQL 11 新特性之哈希分区
文章目录 PostgreSQL 10 引入了声明式分区(declarative partitioning)特性,但是实现的功能有限.PostgreSQL 11 为此带来了许多关于分区的增强功能.首先就 ...
- 《深入理解C++11:C++ 11新特性解析与应用》——导读
前 言 为什么要写这本书 相比其他语言的频繁更新,C++语言标准已经有十多年没有真正更新过了.而上一次标准制定,正是面向对象概念开始盛行的时候.较之基于过程的编程语言,基于面向对象.泛型编程等概念的C ...
- java9特性_96.java基础10(java9/10/11新特性)
126.java 9 新特性1(模块化功能): 1.java模块化 2.java 交互式环境jshell 3.泛型 package com.atguigu.java; import org.junit ...
- [翻译]Adobe Flash Player 11新特性
Adobe Flash Player 11带来了很多改进,您将在网络上看到更多精彩的内容.就像当年Flash Player 7改变了网络视频,ActionScript 3改变了开发Flash内容的方式 ...
- A Morden C++ —— C++11新特性指南
A Morden C++ -- C++11新特性指南 by JOKER on 2013/10/14 不知不觉C++1x,也就是以前的C++0x已经基本达到工业使用的成熟度了,各个编译器的实现也很完整了 ...
- C++11新特性(原封不动转载待查)
C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百 ...
- 探索PostgreSQL 14新特性--SEARCH和CYCLE
探索PostgreSQL 14新特性--SEARCH和CYCLE PG14的SEARCH和CYCLE新功能大大简化了递归查询的方式,本文给出一些基于旅行计划的示例. 创建数据库 本文示例基于任何PG1 ...
- IntelliJ IDEA 使用 Java 11新特性以及Java 8 以来的Java 11新特性介绍
文章目录 Java 11 安装 IDEA 设置 特性1:lambda表达式中允许使用var 特性2: String新增REPEAT 方法,方便拷贝字符串 特性3: 文件读写更方便:readString ...
- Java 11 新特性
2019独角兽企业重金招聘Python工程师标准>>> Java 11 新特性 转载于:https://my.oschina.net/u/3764794/blog/2993127
最新文章
- QGLViewer编译过程
- hexo的yelee主题使用自定义字体并用字蛛进行字体压缩的sed脚本
- 综述 | 事件抽取及推理 (上)
- NumPy 数组学习手册·翻译完成
- 11g RAC环境下客户端配置TAF
- 人脸识别模块关于人脸库大小
- 基于MATLAB的运动车辆跟踪检测系统
- AD快捷键及常用操作
- android 百度基站定位服务器,Android基站定位原理及实现代码
- 服务器共享文件夹加密设置方法,共享文件夹加密专家使用教程
- hypermedia_Hypermedia REST API简介
- 如何培养你自己独特的领导风格?
- java base64 加号_Base64 空格,加号问题
- 微信第三方平台的开发过程一
- 电话号码的字母组合(C++实现)
- oracle中update语句更新字段
- 基尔霍夫矩阵矩阵树定理学习笔记
- Plants vs. Zombies【二分答案】
- 汇千网-未来PC长这样?微软正式推出第一台云电脑
- mysql练习-数据库安全性与完整性
热门文章
- ESP8266实战(一)--wifi时钟的制作
- sqlite怎么转换mysql_Django如何把SQLite数据库转换为Mysql数据库
- 版权费用外流,中国音乐产业被境外唱片公司收割?
- 【SE】Week2 : 个人博客作业
- 核心、中文核心、国家期刊、省级期刊、SCI期刊、EI检索,分类介绍
- Android 环信 自定义聊天气泡
- 【机器人原理与实践(二)】单目摄像头标定与单目测距
- 阿里国际站新版关键词你升级了吗?
- 【技术备忘录】广和通ADP-L610-Arduino模块实现基于内网穿透的TCP通信
- linux中文输入法 2017,ubuntu 16.04 下安装并切换搜狗中文输入法