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

MySQL-Fremdschlüssel hinzufügen

Foreign Key hilft dabei, Datenbankbeziehungen aufzubauen und die referenzielle Integrität aufrechtzuerhalten. Sie helfen, eine oder mehrere Spalten in einer Tabelle mit einer anderen Tabelle zu verknüpfen. So fügen Sie Fremdschlüssel in MySQL hinzu.

Wie man Fremdschlüssel in MySQL hinzufügt

Hier sind die Schritte zum Hinzufügen von Fremdschlüsseln in MySQL. Sie können eine Fremdschlüsseleinschränkung mit CREATE TABLE- oder ALTER TABLE-Anweisungen in SQL hinzufügen.

Hier ist die Syntax zum Erstellen von Fremdschlüsseln in MySQL.

Mit ALTER TABLE

ALTER TABLE table_name 
ADD CONSTRAINT constraint_name 
FOREIGN KEY (foreign_key_name,...) 
REFERENCES parent_table(column_name,...);

In der obigen Abfrage table_name ist die Tabelle, in der Sie den Fremdschlüssel hinzufügen möchten. constraint_name ist der Name der Fremdschlüsseleinschränkung. Fremdschlüsselname, … ist die Liste der Fremdschlüsselspalten.

parent_table ist die Tabelle, auf die Ihr Foreign_Key verweist, gefolgt von einer Liste der Spaltennamen in dieser Tabelle

Bonus-Lesetext:MySQL Alter Table Column

CREATE TABLE verwenden

CREATE TABLE table_name(
    column_name column_description,
    CONSTRAINT constraint_name
    FOREIGN KEY (foreign_key_name,...) 
        REFERENCES parent_table(column_name,...)
)

In der obigen Abfrage table_name ist die Tabelle, in der Sie den Fremdschlüssel hinzufügen möchten. constraint_name ist der Name der Fremdschlüsseleinschränkung. Fremdschlüsselname, … ist die Liste der Fremdschlüsselspalten.

parent_table ist die Tabelle, auf die Ihr Foreign_Key verweist, gefolgt von einer Liste der Spaltennamen in dieser Tabelle.

Bitte beachten , in ALTER TABLE müssen Sie ADD CONSTRAINT verwenden, während Sie in CREATE TABLE nur das Schlüsselwort CONSTRAINT verwenden müssen.

Bonus-Lesetext:MySQL DROP FOREIGN KEY Constraint

MySQL ADD FOREIGN KEY Beispiele

Angenommen, Sie haben die folgenden Tabellen.

Lassen Sie uns 2 Tabellen erstellen (Kategorien und Bestellungen ) und Bestellungen eine Fremdschlüsselbeschränkung hinzufügen , auf id verweisend Spalte in Kategorien Tabelle.

mysql> create table categories(id int auto_increment primary key,name varchar(255));

mysql> create table orders(id int auto_increment primary key,category_id int,
 CONSTRAINT fk_cat 
 FOREIGN KEY (category_id) 
 REFERENCES categories(id));

mysql> describe orders;
+-------------+---------+------+-----+---------+----------------+
| Field       | Type    | Null | Key | Default | Extra          |
+-------------+---------+------+-----+---------+----------------+
| id          | int(11) | NO   | PRI | NULL    | auto_increment |
| category_id | int(11) | YES  | MUL | NULL    |                |
+-------------+---------+------+-----+---------+----------------+

Bonus-Lesetext:MySQL DROP UNIQUE CONSTRAINT

Schauen wir uns dasselbe Beispiel mit der ALTER TABLE-Anweisung an.

mysql> create table orders(id int auto_increment primary key,category_id int);

mysql> create table categories(id int auto_increment primary key,name varchar(255));

mysql> ALTER TABLE orders
     ADD CONSTRAINT fk_cat
     FOREIGN KEY (category_id)
     REFERENCES categories(id);

mysql> describe orders;
+-------------+---------+------+-----+---------+----------------+
| Field       | Type    | Null | Key | Default | Extra          |
+-------------+---------+------+-----+---------+----------------+
| id          | int(11) | NO   | PRI | NULL    | auto_increment |
| category_id | int(11) | YES  | MUL | NULL    |                |
+-------------+---------+------+-----+---------+----------------+

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