Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erstellen Sie einen zusammengesetzten Primärschlüssel in MySQL

Manchmal müssen Sie für Datenbanktabellen einen zusammengesetzten Primärschlüssel erstellen, der aus mehreren Feldern besteht. So erstellen Sie einen zusammengesetzten Primärschlüssel in MySQL.

Wie man einen zusammengesetzten Primärschlüssel in MySQL erstellt

Hier sind die Schritte zum Erstellen eines zusammengesetzten Primärschlüssels in MySQL. Sie können zusammengesetzte Primärschlüssel entweder während der Tabellenerstellung mit der CREATE TABLE-Anweisung oder nach der Tabellenerstellung mit der ALTER TABLE-Anweisung erstellen. Wir werden uns diese beiden Beispiele ansehen, um einen zusammengesetzten Primärschlüssel in MySQL zu erstellen.

Beispiele für zusammengesetzte MySQL-Primärschlüssel

So erstellen Sie während der Tabellenerstellung einen zusammengesetzten Primärschlüssel in MySQL. Angenommen, Sie möchten Bestellungen (Bestell-ID, Produkt-ID, Betrag) erstellen Tabelle mit zusammengesetztem Primärschlüssel (order_id, product_id).

mysql> CREATE TABLE orders_list (
          order_id INT,
          product_id INT,
          amount INT,
          PRIMARY KEY (order_id, product_id)
     ) ;

mysql> describe orders_list;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| order_id   | int(11) | NO   | PRI | 0       |       |
| product_id | int(11) | NO   | PRI | 0       |       |
| amount     | int(11) | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

In der obigen Abfrage haben wir den zusammengesetzten Primärschlüssel (order_id, product_id). erstellt In der obigen Ausgabe sehen Sie PRI in der Schlüsselspalte für order_id, product_id was anzeigt, dass sie beide Teile des Primärschlüssels sind.

Bonus-Lesetext:Wie man Tabellen in MySQL abschneidet

Zusammengesetzten Primärschlüssel zu bestehender Tabelle hinzufügen

Hier ist ein Beispiel für das Hinzufügen eines zusammengesetzten Primärschlüssels zu einer vorhandenen Tabelle. Angenommen, Sie haben die folgende Tabelle

mysql> CREATE TABLE new_orders (
         order_id INT,
         product_id INT,
     amount INT
     ) ;

mysql> describe new_orders;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| order_id   | int(11) | YES  |     | NULL    |       |
| product_id | int(11) | YES  |     | NULL    |       |
| amount     | int(11) | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

Wie Sie die new_orders sehen können Tabelle hat keinen Primärschlüssel. Hier ist die SQL-Abfrage zum Hinzufügen eines zusammengesetzten Primärschlüssels mit ALTER TABLE.

Bonuslektüre:MySQL DROP VIEW

mysql> alter table new_orders ADD PRIMARY KEY (order_id, product_id);

mysql> describe new_orders;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| order_id   | int(11) | NO   | PRI | 0       |       |
| product_id | int(11) | NO   | PRI | 0       |       |
| amount     | int(11) | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

Bitte beachten Sie, dass Sie keinen zusammengesetzten MySQL-Primärschlüssel mit automatischer Inkrementierung erstellen können.

Bonuslektüre:So erstellen Sie einen Index in MySQL

Zusammengesetzter MySQL-Primärschlüsselindex

Sie können einen Index für den zusammengesetzten Primärschlüssel erstellen, der dieselben Felder wie Ihr zusammengesetzter Primärschlüssel verwendet.

mysql> alter table new_orders ADD INDEX new_index (order_id, product_id);

Hoffentlich können Sie jetzt zusammengesetzte Primärschlüssel in MySQL erstellen.

Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!