Fügen Sie den Primärschlüssel zu einer MySQL-Tabelle hinzu
- Fügen Sie den Primärschlüssel zu einer MySQL-Tabelle hinzu
-
Verwenden Sie
CREATE TABLE
, um den Primärschlüssel in MySQL hinzuzufügen -
Verwenden Sie
ALTER TABLE
, um den Primärschlüssel in MySQL hinzuzufügen
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.
- Die Primärschlüsselfeldwerte müssen eindeutig sein.
- Die Spalte, die zum Erstellen eines Primärschlüssels verwendet wird, darf nicht leer oder
NULL
sein. - MySQL Server fügt keinen neuen Datensatz mit einem bereits vorhandenen Primärschlüssel ein.
- 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)