PostgreSQL 数据库使用 psql 导入 SQL

最近我们有一个 SQL 需要导入到 PostgreSQL ,但数据格式使用的是用:

--
-- TOC entry 7877 (class 0 OID 21961)
-- Dependencies: 904
-- Data for Name: upload_references; Type: TABLE DATA; Schema: public; Owner: -
--

COPY public.upload_references (id, upload_id, target_type, target_id, created_at, updated_at) FROM stdin;
45698	760	Post	667	2023-05-05 04:11:35.947138	2023-05-05 04:11:35.947156
42396	6674	Post	3903	2023-05-05 01:59:37.447183	2023-05-05 01:59:37.447202
45699	761	Post	667	2023-05-05 04:11:35.947163	2023-05-05 04:11:35.947167
\.

这样的格式。

这样的格式只能使用 psql 来进行导入。

注意到上面有一个 COPY FROM stdin; 这个是 psql 的专用导入格式。

导入的命令为:

psql -h 127.0.0.1 -p 5433 -U username -W -d database name < dump.sql

我们在导入的命令中加入了不少的参数。

有关 psql 的参数列表,请参考文章:PostgreSQL: Documentation: 15: psql.

上面的参数中:
-h 服务器地址
-p 数据库服务器运行端口
-U 登录用户名
-W 登录密码
-d 数据库名

当导入开始后,在控制台上,会出现导入结果。

数据提示

在导入的数据库,中我们发现 PostgreSQL 使用的 COPY Stdin。

在数据的默认有一个数据终止符 \.

这个数据终止符是不能丢的。