sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres:Hvordan laver man sammensatte nøgler?

Din sammensatte PRIMARY KEY specifikationen gør allerede, hvad du ønsker. Udelad linjen, der giver dig en syntaksfejl, og udelad den redundante CONSTRAINT (allerede underforstået), også:

 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. Forespørgsel fra to tabeller i rapporten

  2. Hvorfor tillader Oracle SQL os ikke at bruge kolonnealiaser i GROUP BY-sætninger?

  3. Referencealias i WHERE-klausulen

  4. MySQL CHAR() vs T-SQL CHAR():Hvad er forskellen?