Database
 sql >> Datenbank >  >> RDS >> Database

SQL, Eindeutige und Primärschlüssel

Mit einer Tabelle, die mit diesem Befehl erstellt wurde:

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL
);

Wir können einen Artikel mehr als einmal einfügen.

Und insbesondere können wir Spalten haben, die denselben Wert wiederholen.

Mit UNIQUE können wir zwingen, dass eine Spalte nur eindeutige Werte enthält Schlüsseleinschränkung:

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL UNIQUE
);

Wenn Sie nun versuchen, das „Flavio“ zweimal hinzuzufügen:

INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (20, 'Flavio');

Sie erhalten eine Fehlermeldung:

ERROR:  duplicate key value violates unique constraint "people_name_key"
DETAIL:  Key (name)=(Flavio) already exists.

Ein Primärschlüssel ist ein eindeutiger Schlüssel, der eine weitere Eigenschaft hat:Es ist die primäre Methode, mit der wir eine Zeile in der Tabelle identifizieren.

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL PRIMARY KEY
);

Der Primärschlüssel kann beispielsweise eine E-Mail in einer Benutzerliste sein.

Der Primärschlüssel kann eine eindeutige id sein die wir jedem Datensatz automatisch zuweisen.

Was auch immer dieser Wert ist, wir wissen, dass wir ihn verwenden können, um auf eine Zeile in der Tabelle zu verweisen.