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