在postgresql中运行sql文件并导出结果的操作

 更新时间:2021年01月06日 09:26:00   作者:iteapoy  
这篇文章主要介绍了在postgresql中运行sql文件并导出结果的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

方法一 在psql中运行

在终端进入用户test下的数据库testdb:

$ psql -p 5432 -U test -d testdb

假设要执行的.sql文件叫做d1.sql,存放路径为:/mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/d1.sql,导出的文件叫做d1.out,存放的路径为:/mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/out/d1.out

testdb=# \o /mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/out/d1.out
testdb=# \i /mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/d1.sql
testdb=# \o

\o file1 表示接下来的内容输出到文件file1

\i file2 表示导入文件file2

\o 表示结束输出到文件file1

方法二 在终端运行

$ psql -p 5432 -U test -d testdb -f /mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/d1.sql > /mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/out/d1.out

补充:postgresql windows自动导出sql

@ECHO OFF
@setlocal enableextensions
@cd /d "%~dp0"
 
set PGPASSWORD="D:/sql_bak/pws.vbs"
SET PGPATH="D:/Program Files/PostgreSQL/10/bin/pg_dump"
SET SVPATH=D:/sql_bak/
SET PRJDB=fame
SET DBUSR=postgres
FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k
FOR /F "TOKENS=1,2,3 DELIMS=: " %%i IN ('TIME /T') DO SET t=%%i%%j%%k
 
SET DBDUMP=%PRJDB%_%d%_%t%.sql
 
%PGPATH% -h 127.0.0.1 -p 5432 -U %DBUSR% %PRJDB% > %SVPATH%%DBDUMP%
 
echo Backup Taken Complete %SVPATH%%DBDUMP%

将以上文件保存为 bat格式。

PGPATH:postgresqsl 安装目录

SVPATH:备份路径

PRJDB:数据库名字

DBUSR:用户名

数据库修改配置文件:pg_hba.conf

设了对本地要密码md5认证。

# TYPE DATABASE  USER    CIDR-ADDRESS     METHOD
# IPv4 local connections:
host  all     all     127.0.0.1/32     md5

改成这样,本地备份就不用输入密码了(改后要重启服务)

# TYPE DATABASE  USER    CIDR-ADDRESS     METHOD
# IPv4 local connections:
host  all     all     127.0.0.1/32     trust

cmd 然后进入postgresql的bin目录

执行

psql -h localhost -U username -d database < d:/data.bak

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Postgresql 存储过程(plpgsql)两层for循环的操作

    Postgresql 存储过程(plpgsql)两层for循环的操作

    这篇文章主要介绍了Postgresql 存储过程(plpgsql)两层for循环的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 使用docker compose启动postgresql的示例代码

    使用docker compose启动postgresql的示例代码

    要在启动 PostgreSQL 容器时执行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d 目录,这个目录下的 SQL 文件会在容器启动时被自动执行,下面是如何修改 Docker Compose 配置文件,以便在启动时执行初始化 SQL 脚本,需要的朋友可以参考下
    2024-10-10
  • 浅谈PostgreSQL表分区的三种方式

    浅谈PostgreSQL表分区的三种方式

    随着使用时间的增加,数据库中的数据量也不断增加,因此数据库查询越来越慢。加速数据库的方法很多,如添加特定的索引,将日志目录换到单独的磁盘分区,调整数据库引擎的参数等。本文即将介绍的数据库表分区即能达到此效果
    2021-06-06
  • Postgresql 检查数据库主从复制进度的操作

    Postgresql 检查数据库主从复制进度的操作

    这篇文章主要介绍了Postgresql 检查数据库主从复制进度的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL regexp_matches替换like模糊查询的操作

    PostgreSQL regexp_matches替换like模糊查询的操作

    这篇文章主要介绍了PostgreSQL regexp_matches替换like模糊查询的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 在Linux系统上安装PostgreSQL数据库

    在Linux系统上安装PostgreSQL数据库

    这篇文章介绍了在Linux系统上安装PostgreSQL数据库的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • PostgreSQL有效地处理数据序列化和反序列化的方法

    PostgreSQL有效地处理数据序列化和反序列化的方法

    在 PostgreSQL 中,处理数据的序列化和反序列化是确保数据在存储、传输和处理过程中的一致性和可用性的重要任务,这涉及到选择合适的数据类型、转换函数以及在应用程序与数据库之间进行数据交互的策略,需要的朋友可以参考下
    2024-07-07
  • PostgreSQL数据库实现公网远程连接的操作步骤

    PostgreSQL数据库实现公网远程连接的操作步骤

    PostgreSQL是一个功能非常强大的关系型数据库管理系统(RDBMS),本文呢将简单几步通过cpolar 内网穿透工具即可现实本地postgreSQL 远程访问,需要的朋友可以参考下
    2023-09-09
  • PostgreSQL教程(三):表的继承和分区表详解

    PostgreSQL教程(三):表的继承和分区表详解

    这篇文章主要介绍了PostgreSQL教程(三):表的继承和分区表详解,本文讲解了多表继承、 继承和权限、什么是分区表、分区表实现、分区和约束排除等内容,需要的朋友可以参考下
    2015-05-05
  • postgresql中的时间戳格式化

    postgresql中的时间戳格式化

    这篇文章主要介绍了postgresql中的时间戳格式化问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论