使用
PostgreSQL
的
psql命令行工具
通过操作员交互或脚本与PostgreSQL数据库进行交互时,通常希望根据特定查询的结果设置psql变量。 尽管PostgreSQL的过程语言
PL / pgSQL
支持诸如
SELECT INTO
和赋值(:=)之类的方法来基于查询结果设置
PL / pgSQL变量
,但
psql变量赋值
不支持这些方法。
进行psql变量赋值的典型方法是使用
\set
。 这允许将psql变量设置为文字值。 但是,在某些情况下,希望根据查询结果设置psql变量。 这是通过psql中的
\gset
选项完成的。 与psql中的
\set
操作将具有显式指定名称的变量设置为显式指定的文字值不同,
\gset
隐式地将psql变量命名为查询返回的列名(如果别名为列
使用PostgreSQL的psql命令行工具通过操作员交互或脚本与PostgreSQL数据库进行交互时,通常希望根据特定查询的结果设置psql变量。 尽管PostgreSQL的过程语言PL / pgSQL支持诸如SELECT INTO和赋值(:=)之类的方法来基于查询结果设置PL / pgSQL变量 ,但psql变量赋值不支持这些方法。 进行psql变量赋值的典型方法是使用\set 。 ...
1、网上一般说的方法如下:
:=,赋值,比如user_id := 20;
select into赋值,比如SELECT INTO myrec * FROM emp WHERE empname = myname
2、我今天介绍的是一个更通用更实用的赋值方法
select ...into ...
使用示例:
一个
变量
,select 30 intouser_id;
SET命令用于改变运行时参数。语法如下:
SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }
函数 set_config 提供了等效的功能; 见第 9.27.1 节。 此外,可以更新
pg
_settings 系统视图以执行等效的 SET。
Synopsi
\copyright:显示
PostgreSQL
的使用和发行条款
\errverbose:以最冗长的形式显示最近的错误消息
\g [文件] or:执行
查询
(并把结果写入文件或|管道)
\gexec:执行策略,然后执行其结果中的每个值
\gset [PREFIX]:执行
查询
并把结果存到
psql
变量
中
\q:退出
psql
\crosstabview [COLUMNS]:执行
查询
并且以交叉表显示...
\copyright show
PostgreSQL
usage and distribution terms
显示
PostgreSQL
的版权以及发布条款postgres=# \copyright
PostgreSQL
Database Management System
# 将数据插入
MySQL
数据库
sql
= "INSERT INTO my_table VALUES (%s, %s, %s)"
my_cursor.execute(
sql
, row)
# 提交事务
my_conn.commit()
# 关闭连接
pg
_conn.close()
my_conn.close()
请注意,上面的脚本是个示例,需要修改成你的数据库连接信息,如数据库地址,端口,用户名,密码,数据库名,表名等。
在实际操作中,为了效率,建议每次读取的数据量不要过大。