mag*_*nus 5 sql postgresql pg-dump
按照标题。
我看了手册页,似乎没有任何命令行参数在“ CREATE TABLE”语句中包含“ IF NOT EXISTS”子句。
不。pg_dump就内置选项而言最接近于此的是--if-exists,它仅与 结合使用--clean,这意味着它仅适用于DROP命令之类的东西。
如果您想添加此类内容,我认为最好的办法是对转储进行后处理(假设您要转储为纯SQL而不是二进制格式)。要涵盖所有各种情况,从技术上讲,您需要一个正则表达式来涵盖CREATE TABLE命令语法的这一部分:
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE
[ IF NOT EXISTS ] table_name
Run Code Online (Sandbox Code Playgroud)
然而,更简单的正则表达式可能会涵盖大多数情况(例如,我认为您永远不会转储临时表,几乎是定义性的,因此可以忽略该部分)。同样,GLOBAL和LOCAL已弃用,因此根据您的数据,这些也可以安全地忽略。
pg_dump 文档供参考。