sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres:Hur gör man Composite keys?

Din sammansatta PRIMARY KEY specifikationen gör redan vad du vill. Utelämna raden som ger dig ett syntaxfel och utelämna den redundanta CONSTRAINT (redan underförstått), också:

 CREATE TABLE tags
      (
               question_id INTEGER NOT NULL,
               tag_id SERIAL NOT NULL,
               tag1 VARCHAR(20),
               tag2 VARCHAR(20),
               tag3 VARCHAR(20),
               PRIMARY KEY(question_id, tag_id)
      );

NOTICE:  CREATE TABLE will create implicit sequence "tags_tag_id_seq" for serial column "tags.tag_id"
    NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "tags_pkey" for table "tags"
    CREATE TABLE
    pg=> \d tags
                                         Table "public.tags"
       Column    |         Type          |                       Modifiers       
    -------------+-----------------------+-------------------------------------------------------
     question_id | integer               | not null
     tag_id      | integer               | not null default nextval('tags_tag_id_seq'::regclass)
     tag1        | character varying(20) |
     tag2        | character varying(20) |
     tag3        | character varying(20) |
    Indexes:
        "tags_pkey" PRIMARY KEY, btree (question_id, tag_id)


  1. FIND_IN_SET() vs IN()

  2. Oracle INSERT i två tabeller i en fråga

  3. Oracle-fråga för att hämta kolumnnamn

  4. Understreck fungerar inte i orakelliknande klausul