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 ...
随机推荐
- SVN之“解决SVN清理失败问题”
解决SVN清理失败,显示乱码问题 更新SVN时,提示要清理,但是清理失败,此时什么也操作不了,以下就是解决方案. 情况如图: 解决方案一: 下载splite3 新建一个临时文件夹,使用英文名字,将解压 ...
- 『Plotly实战指南』--Plotly与Pandas的深度融合
在数据分析的世界中,数据处理与可视化是密不可分的两个环节. Pandas作为Python数据处理的核心工具,以其强大的数据清洗.转换和分析能力,成为数据科学家和分析师的必备利器: 而Plotly则是交 ...
- 0x01 - 我的第一个 Object Visitor
我的第一个 Object Visitor 预演准备 为了顺利的进行测试,你需要确保本地已经安装了以下这些必备的软件: dotnet 2.1 或者以上版本的 SDK,我们更建议直接安装 dotnet 5 ...
- C# 文件系统
检查驱动器信息 DriveInfo[] drives = DriveInfo.GetDrives(); foreach(var drive in drives) { if (drive.IsReady ...
- 张高兴的大模型开发实战:(六)在 LangGraph 中使用 MCP 协议
目录 什么是 MCP 协议 MCP 协议与 API 调用的区别 MCP 协议的连接方式 SSE(Server-Sent Events) stdio(标准输入输出) 在 LangGraph 中使用 MC ...
- 用脚手架创建odoo15项目
Odoo 提供了一种机制来帮助建立一个新模块,odoo-bin有一个子命令脚手架来创建一个空模块 命令: $ odoo-bin scaffold <module name> <whe ...
- Intellij IDEA 关闭和开启自动更新提示
Intellij IDEA 几乎所有的设置操作都在 file ->settings 下,进入Settings页面,在左侧搜索框输入updates关键字,取消勾选Automatically che ...
- kubernetes网络组件calico详解
一.Calico介绍 Calico是一种容器之间互通的网络方案,在虚拟化平台中,比如OpenStack.Docker等都需要实现workloads之间互连,但同时也需要对容器做隔离控制,就像在Inte ...
- C#学习日志
C#入门篇 EanoJiang/CSharp-: C#入门教程,自用 程序思维题: 两根不均匀的香,烧完一根是1h,怎么用来计时15min呢? 思路:一根香从两头同时点燃烧完是30min,只需再对半即 ...
- Linux搭建Docker环境
安装Docker CE 安装Docker的依赖库. yum install -y yum-utils device-mapper-persistent-data lvm2 添加Docker CE的软件 ...