PostgreSQL笔记

在使用PostgreSQL时发现的一些事情或备忘录所在。

我会随时更新的。

利用LIKE语句来重复使用表定义。

    • 名前の意味

tblname: 作成するテーブル名
parent: DDLを流用する元テーブル名
tblname: データをつっこむテーブル名
pkeycol: PRIMARY KEYに指定したカラム名(複数カラムに指定した場合は,多分,それら全部要る)

やりかた

CREATE TABLE tblname (LIKE parent);

注意

上の文ではPRIMARY KEYとかコメントとかついてこないので,振り直さないとだめ.
DEFAULT値とかはLIKE句の後ろにdefaultとかつけたらコピーできる.
詳しくはCREATE TABLEとか参照.

おまけ

PRIMARY KEYを指定する場合

ALTER TABLE tblname ADD PRIMARY KEY (pkeycol);

コメントをつける場合は

COMMENT ON TABLE tblname IS ‘←というテーブルを作ったそうな’;
COMMENT ON COLUMN tblname.pkeycol IS ‘←これPRIMARY KEYだから’;

如果不存在,就插入;如果有重复,就更新。

    • 名前の意味

tblname: データをつっこむテーブル名
pkeycol: PRIMARY KEYに指定したカラム名(複数カラムに指定した場合は,多分,それら全部要る)
colname: データを入れたいカラム名
pkeyval: pkeycolのカラムに入れる値
value: colnameのカラムに入れる値

やりかた

INSERT INTO tblname (pkeycol,colname) VALUES (pkeyval,value)
ON CONFLICT ON CONSTRAINT pkeyname
DO UPDATE SET colname = value;

注意

CONSTRAINTで指定するPRIMARY KEYが必要.そらそーだ.

おまけ

ちなみにMySQLでは,こんな感じらしい.
レコードがなければINSERT,あればUPDATEをするSQL – Qiita

广告
将在 10 秒后关闭
bannerAds