使用psql导入.sql文件到postgres库中

目标:把A库中的表T1导入到B库中。

步骤:

1)在A库中复制T1的表结构并在B库中创建A-T1的副本,此处需注意表名一致;

2)把A库中T1表生成.sql文件;

3)在postgres安装目录bin目录下打开命令行,登录到数据库中。执行语句如下:

psql -U <username> -d <database_name> -h <host> -p <port>

其中 <username> 为登录数据库所需的用户名,<database_name> 为目标数据库的名称,<host> 为主机地址,默认为 localhost,<port> 为监听的端口号,默认为 5432。如果没有特定的配置,则不需要指定这些参数;

4)成功连接到数据库之后,输入以下命令来导入 SQL 文件:

\i /path/to/your/file.sql

将 /path/to/your/file.sql 替换为你想要导入的 SQL 文件的路径;

正常在此便可成功,但是我遇到如下问题:
        ①character with byte sequence 0xaf 0xa6 in encoding “GBK” has no equivalent in encoding “UTF8”

        ②duplicate key value violates unique constraint "xxx_pkey"

问题解决:

问题①可使用以下方法查看编码格式是否一致:

postgres=# select name,setting,context from pg_settings where name like '%encoding%';
      name       | setting | context
-----------------+---------+----------
 client_encoding | GBK     | user
 server_encoding | UTF8    | internal
(2 行记录)

使用以下语句使客户端与服务端编码一致:
\encoding UTF8
问题② 是常见的数据库表主键重复,解决办法很简单,删除数据重新导入即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值