【PostgreSQL】メモ

ポスグレのALTER文。忘れるからメモ。

カラムの型変更

ALTER TABLE テーブル名 ALTER COLUMN カラム名 TYPE 型;

型はこのへん?
smallint
integer
bigint
date
timestamp without time zone
character varying(40)

その他はこのへん。
https://www.postgresql.jp/document/9.3/html/datatype.html

カラム追加

ALTER TABLE テーブル名 ADD COLUMN カラム名 型 NOT NULL;
ALTER TABLE テーブル名 ADD COLUMN カラム名 型 ;

NULL制約設定

ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL;

NULL制約削除

ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL;

外部キー制約削除

ALTER TABLE テーブル名 DROP CONSTRAINT 外部キー名;

外部キー制約作成

ALTER TABLE ONLY テーブル名
    ADD CONSTRAINT 外部キー名 FOREIGN KEY (xxx_no) REFERENCES 外部キーテーブル名(yyy_no);

テーブルのリネーム

ALTER TABLE 変更前の名前 RENAME TO 変更後の名前;

INDEXの名前変更

ALTER INDEX 変更前の名前 RENAME TO 変更後の名前;

主キー変更

ALTER TABLE テーブル名 DROP CONSTRAINT テーブル名_pkey;
ALTER TABLE テーブル名 ADD CONSTRAINT テーブル名_pkey PRIMARY KEY(xxx_no);

テーブルコメント

COMMENT ON TABLE テーブル名 IS 'コメント';

カラムコメント

COMMENT ON COLUMN テーブル名.カラム名 IS 'コメント';

テーブル一覧

select
	 pg_stat_user_tables.relname as TABLE_NAME
	,pg_description.description as TABLE_COMMENT
from
	 pg_stat_user_tables
	,pg_description
where
	pg_stat_user_tables.relname in (
		select 
			relname as TABLE_NAME
		from 
			pg_stat_user_tables
	)
	and
	pg_stat_user_tables.relid=pg_description.objoid
	and
	pg_description.objsubid=0
order by
	pg_stat_user_tables.relname
;

接続中セッションの確認

SELECT pid,* FROM pg_stat_activity where datname = 'DB名';

邪魔なセッションはキル!

SELECT pg_cancel_backend(12345);
SELECT pg_terminate_backend(12345);

以上

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください