我想将一个数据库转储并恢复到另一个可能包含数据的数据库中。如何让pg_dump
生成insert on conflict update
语句而不是仅插入语句?我使用的是Postgres 9.5。
我想将一个数据库转储并恢复到另一个可能包含数据的数据库中。如何让pg_dump
生成insert on conflict update
语句而不是仅插入语句?我使用的是Postgres 9.5。
在 PostgreSQL 12 及更高版本中,您可以使用 --on-conflict-do-nothing
开关的 pg_dump
命令。请参阅文档。
示例:
$ pg_dump test --table=lifehack --section=data --column-inserts --on-conflict-do-nothing
[...]
--
-- Data for Name: lifehack; Type: TABLE DATA; Schema: public; Owner: filip
--
INSERT INTO public.lifehack (id, content) VALUES (1, 'Brush your teeth twice a day.') ON CONFLICT DO NOTHING;
--
-- PostgreSQL database dump complete
--
pg_dump
不会生成INSERT ... ON CONFLICT ... DO UPDATE
命令,所以无法直接实现。) - undefined