Fügen Sie den Primärschlüssel zu einer MySQL-Tabelle hinzu

Mehvish Ashiq 20 Juni 2023
  1. Fügen Sie den Primärschlüssel zu einer MySQL-Tabelle hinzu
  2. Verwenden Sie CREATE TABLE, um den Primärschlüssel in MySQL hinzuzufügen
  3. Verwenden Sie ALTER TABLE, um den Primärschlüssel in MySQL hinzuzufügen
Fügen Sie den Primärschlüssel zu einer MySQL-Tabelle hinzu

Dieser Artikel zeigt, wie Sie den Primärschlüssel mit den Anweisungen CREATE TABLE und ALTER TABLE zu einer MySQL-Tabelle hinzufügen.

Fügen Sie den Primärschlüssel zu einer MySQL-Tabelle hinzu

Es ist wichtig, die folgenden Regeln einzuhalten, bevor der Primärschlüssel hinzugefügt wird.

  1. Die Primärschlüsselfeldwerte müssen eindeutig sein.
  2. Die Spalte, die zum Erstellen eines Primärschlüssels verwendet wird, darf nicht leer oder NULL sein.
  3. MySQL Server fügt keinen neuen Datensatz mit einem bereits vorhandenen Primärschlüssel ein.
  4. In einer Tabelle ist nur ein Primärschlüssel erlaubt.

Wir können einen Primärschlüssel mit der Anweisung CREATE TABLE oder ALTER TABLE erstellen. Sehen wir uns beide unten an.

Verwenden Sie CREATE TABLE, um den Primärschlüssel in MySQL hinzuzufügen

Normalerweise erstellen wir den Primärschlüssel beim Erstellen einer Tabelle. Der folgende Ansatz wird bevorzugt, wenn der Primärschlüssel eine einzige Spalte hat.

Wir verwenden die Primärschlüssel-Einschränkung als Feld-(Spalten-)Einschränkung.

Beispielcode:

CREATE TABLE students(
	ID INT NOT NULL PRIMARY KEY,
    STUDENT_NAME VARCHAR(50) NOT NULL
);

Wir verwenden die folgende Anweisung, um sicherzustellen, dass der Primärschlüssel erstellt wird.

DESCRIBE students;
# Alternatively, we can write as given below
DESC students;

Ausgang:

+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| ID           | int         | NO   | PRI | NULL    |       |
| STUDENT_NAME | varchar(50) | NO   |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)

In der obigen Ausgabe zeigt das PRI unter der Spalte Key, dass der entsprechende Wert in der Spalte Field zum Erstellen eines Primärschlüssels verwendet wird.

Angenommen, wir möchten einen Primärschlüssel erstellen, indem wir mehrere Spalten verwenden. Dann können wir das wie unten angegeben tun.

Beispielcode:

CREATE TABLE courses(
	COURSE_ID INT NOT NULL,
    STUDENT_ID INT NOT NULL,
    COURSE_NAME VARCHAR(50) NOT NULL,
    CONSTRAINT PK_STUDENT_COURSE
   	PRIMARY KEY (COURSE_ID,STUDENT_ID)
);

Prüfen Sie mit der Anweisung DESCRIBE, ob der Primärschlüssel erstellt wird.

DESCRIBE courses

Ausgang:

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| COURSE_ID   | int         | NO   | PRI | NULL    |       |
| STUDENT_ID  | int         | NO   | PRI | NULL    |       |
| COURSE_NAME | varchar(50) | NO   |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.43 sec)

Wir sehen zwei PRI-Werte in der Key-Spalte, was bedeutet, dass die COURSE_ID und STUDENT_ID als Primärschlüssel verwendet werden.

Denken Sie daran, dass wir einen Primärschlüssel Einschränkung als Tabellen-(Beziehungs-)Einschränkung verwenden müssen, wenn es sich um mehrere durch Komma (``) getrennte Spalten handelt, aber es kann auch mit einer einzelnen Spalte gemacht werden. Siehe folgende Abfrage.

Beispielcode:

CREATE TABLE students(
	ID INT NOT NULL,
    STUDENT_NAME VARCHAR(50) NOT NULL,
    PRIMARY KEY(ID)
);

Beachten Sie, dass der Primärschlüssel nur eine Spalte hat, aber wir verwenden die Primärschlüsseleinschränkung als Tabelleneinschränkung. Den Unterschied zwischen Einschränkungen auf Tabellenebene und auf Spaltenebene finden Sie hier.

Verwenden Sie ALTER TABLE, um den Primärschlüssel in MySQL hinzuzufügen

Nachdem wir eine Tabelle erstellt haben, stellen wir fest, dass eine bestimmte Spalte innerhalb einer Tabelle ein Primärschlüssel sein muss, um Redundanz zu vermeiden. In diesem Fall verwenden wir die Anweisung ALTER TABLE.

Wenn eine Tabelle keinen Primärschlüssel enthält, können wir mit dieser Anweisung einen Primärschlüssel für die Spalte(n) einer vorhandenen Tabelle ändern und erstellen. Angenommen, wir haben eine person-Tabelle mit ID und FULLNAME als Spalten.

Beispielcode:

# Create a table without a primary key
CREATE TABLE person(
	ID INT NOT NULL,
    FULLNAME VARCHAR(50) NOT NULL
);

# Describe `person` table
DESCRIBE person;

Ausgang:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID       | int         | NO   |     | NULL    |       |
| FULLNAME | varchar(50) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.07 sec)

Sehen Sie, wir haben keinen Primärschlüssel in der obigen Ausgabe. Jetzt können wir die Anweisung ALTER TABLE wie unten angegeben verwenden, um einen Primärschlüssel für die gewünschte Spalte zu erstellen.

Beispielcode:

ALTER TABLE person ADD PRIMARY KEY(ID);

Denken Sie daran, dass das Feld, das zum Erstellen eines Primärschlüssels verwendet wird, eindeutige Werte haben muss und nicht NULL oder leer enthalten darf. Verwenden Sie nun die Anweisung DESCRIBE, um sicherzustellen, dass ein Primärschlüssel erfolgreich erstellt wurde.

Beispielcode:

DESCRIBE person;

Ausgang:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID       | int         | NO   | PRI | NULL    |       |
| FULLNAME | varchar(50) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.07 sec)
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Key