2

私が走るとき

pg_dump -O --column-inserts -U root map --file=

値を持つものはすべてNULL印刷されます。含まれていない列がNULL含まれるように SQL ファイルを作成できますか?

--column-inserts列名とデータを公開するクエリを作成します。

例:

私はテーブルを持っていると言う

Name | class | element | Id

Nee     V       NULL      102
Mat     VI      NULL      103
...

SQLファイルをエクスポートすると、データ挿入行は次のようになります

INSERT INTO table (Name, class, element, Id) VALUES ('Nee', 'V', NULL, 102);

私が欲しいのは

INSERT INTO table (Name, class, Id) VALUES ('Nee', 'V', 102);

SQL ファイルに、データベースに入れる NULL 要素が含まれないようにします。これが必要なのは、システム データベースでは多くの列を使用しており、私のコードではそのうちのいくつかしか変更されていないためです。したがって、SQL ジェネレーターには多くの NULL があります。

4

1 に答える 1

0

まず、選択肢がありません。第二に、挿入はそのようには見えないため、ダンプを自動的に処理して必要なことを行うことが多かれ少なかれ不可能になります。

pg_dump はデフォルトで、暗黙的な列リストを使用して挿入を作成します。つまり:

INSERT INTO test VALUES ('test2 test', 'foobar');

テーブル宣言で指定された順序で列を使用するため、これは問題ありません。ただし、列を省略できないことも意味します。したがって、これは sed を使用して自動的にすばやく実行できるものではありません。

ここで適切な解決策を決定することは、解決しようとしている問題によって異なります。解決すべき問題がない場合、私が言える最善のことは、「これをやろうとさえしないでください」ということです。あなたの問題に対するより良い解決策がある可能性があります。

于 2013-12-20T15:08:39.077 に答える