我想转储一个数据库并在另一个可能有数据的数据库上恢复转储。我如何制作 pg_dump
生成 insert on conflict update
语句而不是插入语句?我使用 Postgres 9.5
最佳答案
对于 PostgreSQL 12 及更高版本,您可以使用 --on-conflict-do-nothing
pg_dump
的开关.见 docs .
例子:
$ 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
--
关于postgresql - 如何让 pg_dump 在 Postgres 9.5 中生成 upsert 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36321818/