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

Primær nøgle til flere kolonner i PostgreSQL?

Der kan kun være én primær nøgle pr. tabel - som angivet med ordet "primær".
Du kan have yderligere UNIQUE kolonner som:

CREATE TABLE test(
   sl_no int PRIMARY KEY,  -- NOT NULL due to PK
   emp_id int UNIQUE NOT NULL,
   emp_name text,
   emp_addr text
);

Kolonner, der er (en del af) PRIMARY KEY er markeret med NOT NULL automatisk.

Eller brug en tabelbegrænsning i stedet for en kolonnebegrænsning til at oprette en enkelt flerkolonne primær nøgle . Dette er semantisk forskelligt fra ovenstående:Nu kun kombinationen af begge kolonner skal være unikke, hver kolonne kan indeholde dubletter for sig.

CREATE TABLE test(
   sl_no int,     -- NOT NULL due to PK below
   emp_id int ,   -- NOT NULL due to PK below
   emp_name text,
   emp_addr text,
   PRIMARY KEY (sl_no, emp_id)
);

Flerkolonne UNIQUE begrænsninger er også mulige.

Til side:Brug ikke CaMeL-case-identifikatorer i Postgres. Brug lovlige identifikatorer med små bogstaver, så du aldrig behøver at bruge dobbelte anførselstegn. Gør dit liv lettere. Se:



  1. Hvordan bevarer man UTF8mb4-data med mysqldump?

  2. Unix tidsstempel vs datetime

  3. Send mail i oracle med UTF-8-kodning i emne

  4. Kan ikke caste COM-objekt af typen 'System.__ComObject' til grænsefladetypen 'Microsoft.VisualStudio.OLE.Interop.IServiceProvider'