可以指示pg_dump使用" IF NOT NOT EXISTS&#34 ;?创建表格。

时间:2015-06-17 00:42:24

标签: sql postgresql pg-dump

根据标题。

我查看了手册页,看起来没有任何命令行参数可以包含" IF NOT EXISTS" " CREATE TABLE"中的子句语句。

1 个答案:

答案 0 :(得分:4)

没有。 pg_dump 与内置选项最接近的是--if-exists,它只能与--clean一起使用,这意味着它仅 适用于DROP命令等。

如果您想添加此类内容,我认为您最好的选择是后处理转储(假设您正在转储到纯 SQL 而不是二进制格式)。为了涵盖所有各种情况,您在技术上需要一个涵盖CREATE TABLE命令语法的这一部分的正则表达式:

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE
       [ IF NOT EXISTS ] table_name

然而,一个更简单的正则表达式可能会涵盖大多数情况(例如,我不认为你曾经倾倒临时表,几乎是定义,因此可以忽略该部分)。同样,不推荐使用GLOBALLOCAL,因此根据您的数据,也可以安全地忽略这些内容。

pg_dump doc供参考。