ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × 目次 PostgreSQLコマンド例集 psqlコマンド関連 列の追加 主キー制約の変更 外部キー制約の変更 SELECT結果にテーブルにない固定値列を追加する PostgreSQLコマンド例集 自分用メモ psqlコマンド関連 DBに接続 psql -U ユーザー名 -d データベース名 -H ホスト名 列の追加 ALTER TABLE テーブル名 ADD COLUMN 列名 型 DEFAULT 黙認値; 主キー制約の変更 既存の制約を一旦削除し、新たに制約を設定するという流れで行う。さもないと「multiple primary keys for table “テーブル名” are not allowed」と怒られる。 なお、制約名はテーブル名に「_pkey」を追加したものである。 ALTER TABLE テーブル名 DROP CONSTRAINT テーブル名_pkey; ALTER TABLE テーブル名 ADD PRIMARY KEY (列名, 列名, ...); 外部キー制約の変更 ALTER TABLE テーブル名 DROP CONSTRAINT 制約名; ALTER TABLE テーブル名 ADD FOREIGN KEY (制約をつける列名) REFERENCES 制約の参照先テーブル名(制約の参照先列名); 制約の名前を明示しないと「テーブル名_制約をつける列名_fkey」という名前が自動で付けられるっぽい。 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 programming/db/postgresql_command_examples.txt 最終更新: 2019-10-24 14:49by Decomo