Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

PostgreSQLメモ

More than 3 years have passed since last update.

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だから';
      

なければINSERT,重複する場合はUPDATE

  • 名前の意味
    • 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が必要.そらそーだ.
  • おまけ

hadacchi
普段python,たまにR なんとなくデータ分析やってます
https://www.hadacchi.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away