2012-03-12 21 views
0

特定のテーブル、インデックスなどがデータベースに存在するかどうかを確認する更新スクリプトを作成する必要があります。更新スクリプトがない場合は作成します。私はSyntax Error at IFメッセージをPgAdminのクエリウィンドウに入力すると、これらのチェックを行う方法を理解できませんでした。データベースを更新するためのPostgreSQL用スクリプトの作成?

私はPl/pgSQLを使用してこれらの更新を行うパブリックスキーマでストアドプロシージャを作成し、それを実行して更新を行うような何かをしなければなりませんか?うまくいけば、私はちょうど私が仕事を完了するために余分なデータベースオブジェクトを作成せずに実行できるスクリプトを書くことができます。

+0

どのようなアップデートと何を確認しようとしていますか? – Karlson

答えて

3

あなたが望むものを達成するために。

+0

ありがとう、それは私が探しているものです! –

1

pg_tablesを調べましたか?

select * from pg_tables; 

これは、(とりわけ)データベースに存在するスキーマとテーブルを返します。あなたが探しているものの詳細を知らなければ、これは合理的な場所のように思えます。その前に、何のためにhttp://www.postgresql.org/docs/current/static/sql-do.html

は、あなたが関数を記述する必要があります:あなたは、PostgreSQL 9.1である場合は、あなたがDOブロックにあなたのIF条件コードをラップすることができます9.0でCREATE TABLE ... IF NOT EXISTS

を使用することができます

+0

実際、はい、私はpg_tablesを調べました。私はこのテーブル(および他のもの)に対してクエリを使用して、データベース・スキーマにどの変更を加える必要があるかを判断しています。問題は、Postgresがある種の機能を持っていない限り、IF文をサポートしていないので、私のロジックを動作させる方法を知らなかったことです。 DOブロックステートメントを使用すると、それらのIFステートメントを作成して実行できます。それが私が探していたものです。 –

関連する問題