PostgreSQL

PostgreSQL

ストアドファンクションのソースをファイル出力

pg_get_functiondef()ソースを出力するSQLselect pg_get_functiondef((select max(t.oid) from pg_proc t ,pg_namespace n where t.prona...
PostgreSQL

PostgreSQL シーケンス(sequence)

シーケンスの作成と削除シーケンスの作成SQLシーケンス名recnoを作成しています。PostgreSQLのシーケンスキャッシュのデフォルト値は1です。Oracleでの経験ですが、キャッシュ値を1にするとかなり遅くなる事経験したのでここではあ...
PostgreSQL

PostgreSQL 自動採番カラム

自動採番カラム自動採番にしたいカラムを連番型で定義するだけで実現できます。Oracleに比べるととても楽ちんです。内部的にはシーケンスが作成され対象カラムにマッピングされます。以下連番型(serial)を指定すると実際は()の型で作成されま...
PostgreSQL

PostgreSQL CSVインポート

PostgreSQLではCSVのインポートが簡単に行えますCSVを用意した後、対応するテーブルをcreateしてしまえば、後はpsqlからcopyコマンドを実行するだけでインポートが完了します。Oracleの場合では、コントロールファイル(...
PostgreSQL

PostgreSQL 複数行の値を1行でまとめて表示する

group by で指定するグループ内の複数項目を指定順番に連結し表示する。OracleではLISTAGG()関数が用意されていますが、これをPostgreSQLでは2つの関数を組み合わせて実現できます。array_agg()で配列化した後...
PostgreSQL

PostgreSQL ユーザを作成する

create userロール作成属性を保持しているユーザ(ロール)にてcreateできます。デフォルトではpostgresユーザで作成する事になるとおもいます。作成したユーザはpg_hba.confでの制限がない限り、どのデータベースへの接...
information_schema

PostgreSQL テーブル構成カラム一覧

カラム一覧出力SQL以下スキーマ、テーブル名を適宜変更してお使いください。select --c.table_schema,c.table_name,c.column_name,c.ordinal_position as "position"...
PostgreSQL

PostgreSQL 生成列(Oracleの仮想列)

PostgreSQLにもVer.12から生成列(Oracleの仮想列、MySQLの生成列)が利用できます。生成列とは他の列から計算された値を持つカラムです。実際に値を持つのでインデックスの作成もできますが、insert/updateで直接カ...
PostgreSQL

PostgreSQL ストアドファンクションサンプル

PostgreSQL ストアドファンクションサンプル「raise info」で標準出力しています。デバッグ等に使います。Oracleでいうところのdbms_output.put_line()のように利用します。PostgreSQLのファンク...
PostgreSQL

PostgreSQL カレントスキーマを変更する

カレントスキーマを変更するpostgreSQLには「カレントスキーマ」という言葉があります。スキーマ修飾を省略して各種オブジェクトを指定した際「まず最初に参照するスキーマ」の事です。また、このスキーマ参照順序をサーチパスといいます。デフォル...