suer TIL

Databases

DATABASE
2026-08-09 2026-08-10
eye catch

【PostgreSQL】CHECK制約を後から安全に追加する方法

そのままCHECK制約を追加する場合の問題 既存のテーブルにCHECK制約を追加するには、ALTER TABLE ... ADD CONSTRAINT ... CHECKを使用する。 ALTER TABLE products ADD CONSTRAINT price_positive CHECK (price > 0); この方法は、テーブル全体をスキャンして既存の全行が条件を満たすことを検証する。 検証中はテーブルに対してACCESS EXCLUSIVEロックを保持し続けるため、大規模なテーブルでは検証が終わるまでの間、参照・更新を含むすべてのアクセスがブロックされる。
DATABASE
2026-07-26 2026-07-26
eye catch

【PostgreSQL】外部キー制約を後から安全に追加する方法

そのまま外部キー制約を追加する場合の問題 既存のテーブルに外部キー制約を追加するには、ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEYを使用する。 ALTER TABLE orders ADD CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(id); この方法は、参照元テーブルの既存行が参照先テーブルの主キーを正しく参照しているかを検証する。 検証の間、参照元・参照先の両テーブルに対してSHARE ROW EXCLUSIVEロックを保持し続ける。
DATABASE
2026-07-26 2026-07-26
eye catch

【PostgreSQL】NOT NULL制約を後から安全に追加する方法

そのままNOT NULL制約を追加する場合の問題 既存のカラムにNOT NULL制約を追加するには、ALTER TABLE ... ALTER COLUMN ... SET NOT NULLを使用する。 ALTER TABLE big_users ALTER COLUMN email SET NOT NULL; この方法は、テーブル全体をスキャンして既存の全行がNULLを含まないことを検証する。 検証中はテーブルに対してACCESS EXCLUSIVEロックを保持し続けるため、大規模なテーブルでは検証が終わるまでの間、参照・更新を含むすべてのアクセスがブロックされる。
DATABASE
2026-07-26 2026-07-26
eye catch

【PostgreSQL】pg_basebackupで物理バックアップを取得する

pg_basebackupとは pg_basebackupは、稼働中のPostgreSQLサーバーからデータベースクラスタ全体の物理バックアップを取得するコマンドである。 取得したバックアップは、レプリカの構築やリストアに使用する。
DATABASE
2026-07-25 2026-07-25
eye catch

【PostgreSQL】log_min_duration_statementでスロークエリをログに出力する

log_min_duration_statementとは log_min_duration_statementは、指定した時間(ミリ秒)以上かかったSQL文をログに出力するPostgreSQLのパラメータである。 スロークエリを特定する際に使用する。
DATABASE
2026-07-25 2026-07-25
eye catch

【PostgreSQL】シーケンスの現在値を変更する

setval関数でシーケンスの現在値を変更する PostgreSQLでシーケンスの現在値を変更するには、setval関数を使用する。 SELECT setval('シーケンス名', 値); たとえばSERIAL型のidカラムを持つitemsテーブルのシーケンスitems_id_seqを100に設定する場合は以下のように実行する。
DATABASE
2026-07-25 2026-07-25
eye catch

【PostgreSQL】接続数の上限と現在の接続数を確認する

max_connectionsで接続数の上限を確認する PostgreSQLで同時接続数の上限を確認するには、max_connectionsパラメータをSHOWコマンドで確認する。 SHOW max_connections; max_connections ------------------ 100 (1 row) pg_settingsシステムカタログを参照しても同様に確認できる。
DATABASE
2026-07-25 2026-07-25
eye catch

【PostgreSQL】ロール・権限一覧を確認する

\duコマンドでロール一覧を確認する PostgreSQLでロール一覧を確認するには、psqlコマンドラインツールの\duコマンドを使う。 \du List of roles Role name | Attributes ---------------+------------------------------------------------------------ app_admin | Create role, Create DB app_user | postgres | Superuser, Create role, Create DB, Replication, Bypass RLS readonly_user | Attributes列にはロールに付与された属性が表示される。 Superuser(スーパーユーザー)、Create role(ロール作成権限)、Create DB(データベース作成権限)などがあり、属性を持たないロールは空欄になる。
DATABASE
2026-07-25 2026-07-25
eye catch

【PostgreSQL】pg_restoreの-jオプションで並列リストアする

-jオプションとは pg_dumpの-Fc(カスタムフォーマット)で取得したダンプは、pg_restoreの-j(--jobs)オプションで複数テーブルを並列にリストアできる。ダンプ内のテーブルは互いに独立したエントリとして格納されているため、-jに指定した数のプロセスで同時にデータロードやインデックス作成を進められる。
DATABASE
2026-07-25 2026-07-25
eye catch

【PostgreSQL】pg_restoreの--tableオプションで特定のテーブルのみリストアする

–tableオプションとは pg_dumpの-Fc(カスタムフォーマット)で取得したダンプは、pg_restoreの--table(-t)オプションで特定のテーブルのみをリストアできる。プレインテキスト形式のダンプは先頭から順にSQL文を実行する仕組みのため、リストア時にテーブルを絞り込むことはできない。カスタムフォーマットであれば、全テーブルを含む1つのダンプファイルを作成しておき、リストアするタイミングで必要なテーブルだけを選べる。
DATABASE
2026-07-25 2026-07-25
  • ««
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
  • »»
AUTHOR
author image
suer
ふつうのプログラマ
LATESTS
eye catch
【VSCode】Javaのフォーマッターを設定する
VSCODE
2026-08-09 2026-08-09
eye catch
【VSCode】Workspace Trust(信頼するフォルダー)の仕組みと設定
VSCODE
2026-08-09 2026-08-09
eye catch
【VSCode】フォルダ同士を比較する
VSCODE
2026-08-09 2026-08-09
eye catch
【シェル】echo -e と printf の使い分け(改行の制御)
LINUX
2026-08-09 2026-08-09
eye catch
【iTerm2】画面を分割して複数のシェルを並べる
MAC
2026-08-09 2026-08-09
  • ホーム
  • お問い合わせ
  • プライバシーポリシー

© 2022 suer