如何解决PostgreSQL,正在运行sql并得到错误:从stdin复制失败
使用pgAdmin4,菜单Tools / Backup / Format-Plain的Postgresql 12将数据库备份到如下所示的sql文件中:
--
-- PostgreSQL database dump
--
-- Dumped from database version 12.3
-- Dumped by pg_dump version 12.3
-- Started on 2020-08-06 17:38:54
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path','',false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- TOC entry 202 (class 1259 OID 17973)
-- Name: customers; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.customers (
"CustomerID" character varying(32) NOT NULL,"Name" character varying(128),"AddressLine" character varying(128)
);
ALTER TABLE public.customers OWNER TO postgres;
--
-- TOC entry 3232 (class 0 OID 17973)
-- Dependencies: 202
-- Data for Name: customers; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.customers ("CustomerID","Name","AddressLine") FROM stdin;
\.
-- Completed on 2020-08-06 17:38:54
--
-- PostgreSQL database dump complete
--
创建一个新的空数据库,并尝试在sql文件上方运行以创建架构和数据。在“ COPY”下的反斜杠上发生错误: pgAdmin出现错误:
ERROR: syntax error at or near "\"
LINE 45: \.
^
SQL state: 42601
Character: 1092
如何正确运行sql文件以还原架构和数据?
解决方法
您必须使用pg_dump
恢复纯格式psql
。除非您使用--inserts
的{{1}}选项,否则pgAdmin或juat的其他客户端不会这样做。
原因是其他客户端无法在单个输入文件中处理SQL语句和pg_dump
数据的混合。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。