Postgresは通常、プレーンSQLで変数を使用しません。しかし、あなたはできます それも行います:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
マニュアルのカスタマイズされたオプションについてお読みください。
PostgreSQL 9.1以前では、custom_variable_classes
を宣言する必要がありました それを使用する前に。
ただし、できません EXECUTE
PL(手続き型言語)を使用しない動的SQL。 DO
を使用します アドホックステートメントを実行するためのコマンド(ただし、そこからデータを返すことはできません)。または、CREATE FUNCTION
を使用します 動的SQLを実行する(そして考えられるあらゆる方法でデータを返すことができる)関数を作成します。
動的SQLを使用する場合は、SQLインジェクションから保護するようにしてください。
関連:
- PostgreSQLクエリで名前付き定数を定義する方法はありますか?