根据标题。
我查看了手册页,看起来没有任何命令行参数可以包含" IF NOT EXISTS" " CREATE TABLE"中的子句语句。
答案 0 :(得分:4)
没有。 pg_dump 与内置选项最接近的是--if-exists
,它只能与--clean
一起使用,这意味着它仅 适用于DROP
命令等。
如果您想添加此类内容,我认为您最好的选择是后处理转储(假设您正在转储到纯 SQL 而不是二进制格式)。为了涵盖所有各种情况,您在技术上需要一个涵盖CREATE TABLE
命令语法的这一部分的正则表达式:
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE
[ IF NOT EXISTS ] table_name
然而,一个更简单的正则表达式可能会涵盖大多数情况(例如,我不认为你曾经倾倒临时表,几乎是定义,因此可以忽略该部分)。同样,不推荐使用GLOBAL
和LOCAL
,因此根据您的数据,也可以安全地忽略这些内容。
pg_dump doc供参考。