文書の過去の版を表示しています。
PostgreSQLコマンド例集
自分用メモ
列の追加
ALTER TABLE テーブル名 ADD COLUMN 列名 型 DEFAULT 黙認値;
プライマリキー制約の変更
既存の制約を一旦削除し、新たに制約を設定するという流れで行う。さもないと「multiple primary keys for table “テーブル名” are not allowed」と怒られる。
なお、制約名はテーブル名に「_pkey」を追加したものである。
ALTER TABLE テーブル名 DROP CONSTRAINT テーブル名_pkey; ALTER TABLE テーブル名 ADD PRIMARY KEY (列名, 列名, ...);
SELECT結果にテーブルにない固定値列を追加する
SELECTの中に「固定値 as 列名」を入れる。
■SQL
SELECT id, name, '日本' AS country FROM users;
■実行結果
| id | name | country |
|---|---|---|
| 1 | 山田太郎 | 日本 |
| 2 | 佐藤花子 | 日本 |
| 3 | 鈴木一郎 | 日本 |
合わせ技で固定値にとしてサブクエリの結果を使うこともできる。
■SQL
SELECT id, name, (SELECT CAST(c.code AS INTEGER) FROM countries AS c WHERE c.name='日本') AS country_id FROM users;
■実行結果(contriesテーブルでname='日本', code='81'が定義されているとする)
| id | name | country_id |
|---|---|---|
| 1 | 山田太郎 | 81 |
| 2 | 佐藤花子 | 81 |
| 3 | 鈴木一郎 | 81 |