PG系列:在 `psql` 客户端中定义参数与动态赋值
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。
作为一名长期使用从事Oracle数据库的人员,习惯了在sqlplus
中各种动态参数赋值,但是在 PostgreSQL 的命令行客户端 psql
中,虽然有类似的变量功能,只是语法略有不同,功能也比要弱很多,下面从在日常使用 PostgreSQL 的 psql
客户端时,我们常常会在脚本中用到的传入动态参数方法,可以让 SQL 更加灵活复用。
一、变量定义方式
1.1 使用 \set
静态赋值
sql
\set name 'shared_buffers'
SELECT name, setting, unit, context
FROM pg_settings
WHERE name = :name;
:name 表示变量引用,使用时无需再加单引号。
1.2 使用 \prompt 交互式赋值
\prompt '请输入要查询的参数名: ' name
SELECT name, setting, unit, context
FROM pg_settings
WHERE name LIKE '%' || :name || '%';
\prompt 会在脚本执行时提示用户输入变量值。
1.3 通过命令行 -v 参数赋值
psql -v name="'work_mem'" -f get_param.sql
get_param.sql 示例:
SELECT name, setting, unit FROM pg_settings WHERE name = :name;
如果参数是字符串类型,请在命令行中包含引号,如:"'work_mem'"。
------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)
PG系列:在 `psql` 客户端中定义参数与动态赋值的更多相关文章
- 19.翻译系列:EF 6中定义自定义的约定【EF 6 Code-First约定】
原文链接:https://www.entityframeworktutorial.net/entityframework6/custom-conventions-codefirst.aspx EF 6 ...
- Vue路由规则中定义参数
Vue使用routerLinke定义参数的时候 路由规则中不需要更改任何属性. 路由其实就是我们在html中定义的锚点,点击这个连接跳转一个锚点.vue中的路由也是这个原理, 前提是路由必须创建在实 ...
- 嵌入Python系列 | 调用Python模块中无参数函数
开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...
- 在psql客户端中修改函数
\ef 创建一个新的函数. \df 显示已经创建的函数. \df+ somefunc 显示这个函数的详细定义 \ef somefunc 编辑这个函数, 编辑保存退出之后,要执行 \g ,刚才 ...
- 20.2.翻译系列:EF 6中基于代码的数据库迁移技术【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/code-based-migration-in-code-first.aspx EF 6 ...
- 20.1翻译系列:EF 6中自动数据迁移技术【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/automated-migration-in-code-first.aspx EF 6 ...
- 5.翻译系列:EF 6中数据库的初始化(EF 6 Code-First 系列)
原文地址:http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx EF ...
- 10.1.翻译系列:EF 6中的实体映射【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/configure-entity-mappings-using-fluent-api.a ...
- 15.翻译系列:EF 6中的级联删除【EF 6 Code-First 系列】
原文链接:https://www.entityframeworktutorial.net/code-first/cascade-delete-in-code-first.aspx EF 6 Code- ...
- 7.翻译系列:EF 6中的继承策略(EF 6 Code-First 系列)
原文地址:http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code-first.aspx EF 6 ...
随机推荐
- Linux系列:如何用perf跟踪.NET程序的mmap泄露
一:背景 1. 讲故事 如何跟踪.NET程序的mmap泄露,这个问题困扰了我差不多一年的时间,即使在官方的github库中也找不到切实可行的方案,更多海外大佬只是推荐valgrind这款工具,但这款工 ...
- 国际化利器 Intl Messageformat
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序 Formats ICU Message string ...
- git管理Unity项目
git管理Unity项目的正确打开方式 在创建仓库的时候进行初始化仓库,选择.gitignore模版的时候选择Unity,就能自动过滤不需要的文件 原文链接:https://blog.csdn.net ...
- java从小白到老白③
PS:①小陌笔记中蓝色紫色等一切花哨字体皆用来引入知识点(废话流),可忽略不计 . ②黑字正文小陌竭力向言简意赅靠近再靠近. ③红色字体小陌觉得重要的地方 老规矩,题目引入: int a = 1; i ...
- java springboot图片上传和访问
上传 @RequestMapping("/uploadImg") public Result uploadImg(HttpServletRequest request, Multi ...
- RDP远程桌面连接服务
漏洞原理 Windows远程桌面内核驱动处理MS_T120通道时(管理数据传输时)没有对数据的数据包进行验证限制,没有将信道的指针删除(之后会回来访问恶意的数据包),攻击者无需认证即可向RDP服务(3 ...
- Opencv学习:使用Opencv对图象进行抠图和滤镜处理,实现“你的名字”动漫图片效果
最近接到了一个坑爹题目,是这么要求的: 仿照 <你的名字>,对天坛图像.src.jpg进行处理.要求 (一)背景(天空)分割,替换后再融合 在自然界的图片中,很难出现动漫中大多大多的云彩. ...
- 【深入理解Spring AOP】核心原理与代理机制详解
深入理解Spring AOP:核心原理与代理机制详解 引言 在现代Java开发中,面向切面编程(AOP)已经成为解决横切关注点的主流方案.作为Spring框架的核心模块之一,Spring AOP通过代 ...
- Selenui + Cucumber framwork structure
- 探索 Vue.js 组件的最新特性
引言: Vue.js 作为一款流行的前端框架,始终在不断发展和演进,为开发者带来新的特性和功能,以提升开发效率和用户体验.Vue.js 组件是构建 Vue 应用的基础,其最新特性为开发者提供了更强大的 ...