Postgres Composite Primärschlüssel

Postgres Composite Primärschlüssel
In diesem Artikel wird das Konzept des zusammengesetzten Primärschlüssels in PostgreSQL erörtert. Ein Primärschlüssel ist ein Feld, das einer Zeile mit eindeutigen Werten in der Tabelle einer Datenbank zugeordnet ist. Wenn eine Tabelle mehr als einen eindeutigen Wert hat, verwenden wir einen zusammengesetzten Primärschlüssel für diese Attribute, die sie für die Unterscheidung auseinander setzen. Mit PostgreSQL können die Benutzer zusammengesetzte Primärschlüssel in ihren Tabellen haben. Wir werden mehrere Beispiele des zusammengesetzten Primärschlüsselkonzepts in PostgreSQL diskutieren, um dieses Konzept besser zu verstehen.

Syntax des zusammengesetzten Primärschlüssels in PostgreSQL

Bevor wir direkt zur Implementierung des zusammengesetzten Primärschlüsselkonzepts springen, sollten wir die Syntax wissen, um 2 oder mehr Attribute in der Tabelle zu einem Primärschlüssel zu machen. Daher wird ein zusammengesetzter Primärschlüssel so deklariert, wie eine normale Primärin deklariert wird, wenn wir eine Tabelle erstellen. Die Syntax für den zusammengesetzten Primärschlüssel wird unten zusammen mit ihren Eigenschaften oder Spaltennamen beschrieben:

>> Tabelle name_of_table erstellen
(column_1 Datentyp,
column_2 Datentyp,
… ,
column_n DataType
Primärschlüssel (column_1, column_2));

In dieser Abfrage initialisieren wir eine Tabelle mit mehreren Spalten, und anstelle der Initialisierung der einzelnen Primärschlüssel für die Spalten initialisieren wir sie separat, nachdem wir den Namen der Spalte und den Datenatyp der Spalte definiert haben. Wir verwenden das Schlüsselwort „Primärschlüssel“ mit einer Klammer, in der wir die mit Kommas getrennten Namen der Spalten schreiben, um sie als zusammengesetzte Primärschlüssel anzugeben.

Initialisierung eines zusammengesetzten Primärschlüssels in PostgreSQL

Da uns die Syntax jetzt bekannt ist, können wir uns einige Beispiele für das Erstellen einer Tabelle mit mehreren Primärschlüssel ansehen. Wir werden also zuerst unseren Query -Editor öffnen und eine Tabelle erstellen.

>> Tabelle Mitarbeiter erstellen1 (
e_id int,
e_type int,
E_NAME VARCHAR,
e_sal int);

Jetzt können wir eine Tabelle aus dieser Abfrage erstellen, aber es gibt ein Problem in dieser Tabelle, da keine Spalte als Primärschlüssel angegeben wurde. In dieser Tabelle kann es nach Bedarf mehr als einen Primärschlüssel geben, z. Was ist, wenn wir jeden von ihnen als Primärschlüssel getrennt initialisieren?? Lassen Sie uns sehen, wie sich dies herausstellt, wenn wir dies in Postgresql ausführen.

Table Mitarbeiter erstellen1 (
E_id int Primärschlüssel,
E_TYPE INT -Primärschlüssel,
E_NAME VARCHAR,
e_sal int);

Die Ausgabe ist im angehängten Bild angehängt.

Wie die Ausgabe darauf hindeutet, dass wir in unseren Tabellen nicht mehr als einen Primärschlüssel erstellen können, wenn wir die Ein-Liner-Methode verwenden. Diese Methode ist in der PostgreSQL -Umgebung nicht zulässig und kann nur verwendet werden, wenn wir nur eine Spalte als Primärschlüssel deklarieren müssen. Jetzt werden wir uns die richtige Methode ansehen, um mehr als einen Primärschlüssel in einer Tabelle in PostgreSQL zu deklarieren.

Zwei Spalten als Primärschlüssel deklarieren

In dieser Situation werden wir zwei Spalten der Tabelle gleichzeitig Primärschlüssel sein. Wir machen die ID -Spalte zu einem Primärschlüssel und der Art der Mitarbeiterspalte zu einem Primärschlüssel in unserer Tabelle. Wir müssen diese Abfrage wie folgt erstellen, damit sie erfolgreich ausgeführt werden kann:

>> Tabelle Mitarbeiter erstellen1 (
e_id int,
e_type int,
E_NAME VARCHAR,
e_sal int,
Primärschlüssel (e_id, e_type)
);

Die Ausgabe ist im angehängten Bild angehängt.

Wie Sie sehen, dass die Ausgabe darauf hindeutet, dass die Tabelle erfolgreich erstellt wurde und wir sie zum Einfügen von Werten verwenden können. Lassen Sie uns dies nun in unserer Postgres -Umgebung überprüfen.

>> In die Werte der Mitarbeiter1 einfügen (011,1, 'Josh', 10000),
(021,1, 'John', 18800),
(031,1, 'James', 17000),
(041,2, 'Harry', 13000),
(051,2, 'Alex', 14000),
(061,2, 'Ron', 15000);
Wählen Sie * aus Employee1;

Die Ausgabe ist im angehängten Bild angehängt.

Wie Sie sehen, haben wir erfolgreich eine Tabelle erstellt und Werte eingefügt, während wir zwei Primärschlüssel den Spalten der Tabelle zugewiesen hatten. In dieser Tabelle sind die primären Schlüssel "e_id" und "e_type", und wir haben sie als eindeutige Attribute für die Tabelle "Employee1" definiert, die als eindeutige Attribute definiert wurden.

Drei Spalten als Primärschlüssel deklarieren

In dieser Situation werden wir drei Spalten der Tabelle gleichzeitig zu Primärschlüssel machen. Wir machen die ID -Spalte zu einem Primärschlüssel, der Name des Mitarbeiter wird als Primärschlüssel festgelegt, und auch als die Art der Mitarbeiterspalte als Primärschlüssel in unserer Tabelle. Damit diese Abfrage erfolgreich ausgeführt werden kann, müssen wir sie so zusammenstellen:

>> Tabelle Mitarbeiter erstellen1 (
e_id int,
e_type int,
E_NAME VARCHAR,
e_sal int,
Primärschlüssel (e_id, e_type, e_name)
);

Die Ausgabe ist im angehängten Bild angehängt.

Wie Sie sehen, dass die Ausgabe darauf hindeutet, dass die Tabelle erfolgreich erstellt wurde und wir sie zum Einfügen von Werten verwenden können. Lassen Sie uns nun überprüfen, ob die Einfügung in unserer Postgres -Umgebung anwendbar ist oder nicht.

In die Werte der Mitarbeiter1 einfügen (011,1, 'James', 10000),
(041,2, 'Harry', 13000),
(061,2, 'Ron', 15000),
(031,1, 'James', 17000),
(051,2, 'Alex', 14000),
(021,1, 'John', 18800);
Wählen Sie * aus Employee1;

Die Ausgabe ist im angehängten Bild angehängt.

Wie Sie sehen können, haben wir erfolgreich eine Tabelle erstellt und Daten in sie eingegeben, während wir den Spalten der Tabelle drei Primärschlüssel zugewiesen haben. In dieser Tabelle sind die primären Schlüssel "e id", "e Typ" und "e name", und wir haben sie als eindeutiges Attribut für die Tabelle "Employee1" bezeichnet.

Erledigen Sie alle Spalten als Primärschlüssel

In dieser Situation werden wir alle vier Spalten der Tabelle gleichzeitig Primärschlüssel sein. Damit diese Abfrage erfolgreich ausgeführt werden kann, müssen wir wie unten gezeigt schreiben:

Table Mitarbeiter erstellen1 (
e_id int,
e_type int,
E_NAME VARCHAR,
e_sal int,
Primärschlüssel (e_id, e_type, e_name, e_sal)
);

Die Ausgabe ist im angehängten Bild angehängt.

Wie Sie sehen können, zeigt das Ergebnis an, dass die Tabelle erfolgreich erstellt wurde, und wir können es jetzt verwenden, um Werte einzufügen. Lassen Sie uns nun sehen, ob die Einfügung in unserer Postgres -Umgebung funktioniert.

>> in die Mitarbeiter1 -Werte einfügen (011,1, 'Jacob', 8000),
(051,2, 'Alexander', 1400),
(041,2, 'Harry', 100),
(031,1, 'Jake', 17000),
(061,2, 'Ray', 3500),
(021,1, 'Johnathan', 18800);
Wählen Sie * aus Employee1;

Die Ausgabe ist im angehängten Bild angehängt.

Wie Sie sehen können, haben wir eine Tabelle erstellt, sie mit Daten gefüllt und den Spalten der Tabelle vier Primärschlüssel zugewiesen. Die primären Schlüssel in dieser Tabelle sind "e_id", "e_type", "e_name" und "e_sal". Sie wurden als einzigartiges Attribut für die Tabelle "Mitarbeiter1" erklärt.

Wir sind zu dem Schluss gekommen, dass POSTGRESQL es uns ermöglicht, mehr als einen Primärschlüssel in unserer Tabelle zu haben. Wir können es mit der zusammengesetzten Primärschlüsselfunktion bis zu möglichst viele Spalten wie möglich skalieren oder sogar alle Spalten der Tabelle zuweisen.

Abschluss

In diesem Artikel haben wir das Konzept des zusammengesetzten Primärschlüssels in PostgreSQL kennengelernt. Wenn wir also einer Situation entgegenwirken, in der wir mehr als einen Primärschlüssel deklarieren müssen, können wir die zusammengesetzte Primärschlüsselfunktion mit Hilfe dieses Artikels in dieser Situation verwenden. Die Syntax für die zusammengesetzte Primärschlüsseldeklaration wurde ebenfalls ausführlich in Postgrades erörtert, da alle Aspekte der Funktion in Teilen diskutiert wurden. Dann haben wir dieses Konzept auch in der Postgresql -Umgebung implementiert. Die korrekte Art, zwei, drei oder sogar mehr als 3 Primärschlüssel in einer einzelnen Tabelle in PostgreSQL zu deklarieren.