無名コードブロックを実行します。code説明DOは無名コードブロック、言い換えると、手続き言語内の一時的な無名関数を実行します。コードブロックはあたかもパラメータを取らずにvoidを返す関数の本体かのように扱われます。これは解析され、一回実行されます。LANGUAGE句をコードブロックの前または後ろにつけることができます。パラメータcode実行される手続き言語のコードです。FUNCTIONの場合と同様、文字列リテラルとして指定しなければなりません。ドル記号による引用符付けの使用を勧めます。lang_nameコードの作成に使用する手続き言語の名前です。省略時のデフォルトはplpgsqlです。EXTENSIONを使用して現在のデータベースにインストール済みでなければなりません。plpgsqlはデフォルトでインストールされますが、他の言語はインストールされません。ユーザは手続き言語に対するUSAGE権限を持たなければなりません。言語が信用できない場合はスーパーユーザでなければなりません。これは、その言語における関数作成に必要な権限と同じです。DOがトランザクションブロック内で実行された場合、プロシージャコードはトランザクション制御文を実行できません。DOが自身のトランザクション内で実行された場合にのみ、トランザクション制御文は認められます。例スキーマpublic内のすべてのビューに対するすべての権限をロールwebuserに付与します。標準SQLにはDO文はありません。