postgresql - 如何让 pg_dump 在 Postgres 9.5 中生成 upsert 语句

标签 postgresql

我想转储一个数据库并在另一个可能有数据的数据库上恢复转储。我如何制作 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/

相关文章:

postgresql - ecpg 找不到包含,除非从包含源文件的目录执行

java - 如何从数据库存储和读取公钥?我正在使用 postgresql 和 java

mysql - 错误 : column specified more than once in Postgres

postgresql - 如何在不同的模式上运行相同的功能

python - Flask-Admin多对多字段展示

postgresql - 我应该使用 elasticsearch 进行非自由文本搜索吗

sql - postgres 会自动为每一行生成一个 id 吗?

postgresql - 当我按下 Home 键簇中的任何键时,为什么 psql 会插入波浪号?

postgresql - Postgresql 何时对 JOIN 列进行分区修剪?

sql - 如何在 SQL 中为球队/对手数据创建 game_id 变量