差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
programming:db:postgresql_command_examples [2018-09-03 15:12] Decomo [プライマリキー制約の変更] |
programming:db:postgresql_command_examples [2019-10-24 14:49] Decomo |
||
---|---|---|---|
行 2: | 行 2: | ||
自分用メモ | 自分用メモ | ||
+ | |||
+ | ===== psqlコマンド関連 ===== | ||
+ | |||
+ | DBに接続 | ||
+ | < | ||
+ | psql -U ユーザー名 -d データベース名 -H ホスト名 | ||
+ | </ | ||
===== 列の追加 ===== | ===== 列の追加 ===== | ||
行 9: | 行 16: | ||
</ | </ | ||
- | ===== プライマリキー制約の変更 ===== | + | ===== 主キー制約の変更 ===== |
既存の制約を一旦削除し、新たに制約を設定するという流れで行う。さもないと「multiple primary keys for table " | 既存の制約を一旦削除し、新たに制約を設定するという流れで行う。さもないと「multiple primary keys for table " | ||
行 19: | 行 26: | ||
ALTER TABLE テーブル名 ADD PRIMARY KEY (列名, 列名, ...); | ALTER TABLE テーブル名 ADD PRIMARY KEY (列名, 列名, ...); | ||
</ | </ | ||
+ | |||
+ | ===== 外部キー制約の変更 ===== | ||
+ | |||
+ | <code sql> | ||
+ | ALTER TABLE テーブル名 DROP CONSTRAINT 制約名; | ||
+ | ALTER TABLE テーブル名 ADD FOREIGN KEY (制約をつける列名) REFERENCES 制約の参照先テーブル名(制約の参照先列名); | ||
+ | </ | ||
+ | |||
+ | 制約の名前を明示しないと「テーブル名_制約をつける列名_fkey」という名前が自動で付けられるっぽい。 | ||
+ | |||
+ | ===== SELECT結果にテーブルにない固定値列を追加する ===== | ||
+ | |||
+ | SELECTの中に「固定値 as 列名」を入れる。 | ||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | ■SQL | ||
+ | <code sql> | ||
+ | SELECT id, | ||
+ | name, | ||
+ | ' | ||
+ | FROM users; | ||
+ | </ | ||
+ | </ | ||
+ | ■実行結果 | ||
+ | ^ id ^ name ^ country | ||
+ | | 1|山田太郎|日本| | ||
+ | | 2|佐藤花子|日本| | ||
+ | | 3|鈴木一郎|日本| | ||
+ | </ | ||
+ | </ | ||
+ | 合わせ技で固定値にとしてサブクエリの結果を使うこともできる。 | ||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | ■SQL | ||
+ | <code sql> | ||
+ | SELECT id, | ||
+ | name, | ||
+ | | ||
+ | FROM users; | ||
+ | </ | ||
+ | </ | ||
+ | ■実行結果(contriesテーブルでname=' | ||
+ | ^ id ^ name ^ country_id | ||
+ | | 1|山田太郎| | ||
+ | | 2|佐藤花子| | ||
+ | | 3|鈴木一郎| | ||
+ | </ | ||
+ | </ |