Wir können beim Erstellen der Tabelle Fremdschlüsseleinschränkungen festlegen.
Geben Sie in der CREATE TABLE-Anweisung den Fremdschlüssel über das Schlüsselwort FOREIGN KEY an. Das spezifische Syntaxformat lautet wie folgt:
[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…]
Beispiel:
Erstellen Sie nun einen im test_db-Datenbank Abteilungstabelle tb_dept1, die Tabellenstruktur ist wie in der folgenden Abbildung dargestellt:
Die SQL-Anweisung und die Ausführungsergebnisse zum Erstellen von tb_dept1 lauten wie folgt.
mysql> CREATE TABLE tb_dept1 -> ( -> id INT(11) PRIMARY KEY, -> name VARCHAR(22) NOT NULL, -> location VARCHAR(50) -> ); Query OK, 0 rows affected (0.37 sec)
Erstellen Sie die Datentabelle tb_emp6 und erstellen Sie eine Fremdschlüsseleinschränkung für die Tabelle tb_emp6, sodass ihre Schlüssel-Abteilungs-ID mit der Primärschlüssel-ID der Tabelle tb_dept1 als Fremdschlüssel verknüpft ist und ausgeführt wird Die Ergebnisse sind wie folgt.
mysql> CREATE TABLE tb_emp6 -> ( -> id INT(11) PRIMARY KEY, -> name VARCHAR(25), -> deptId INT(11), -> salary FLOAT, -> CONSTRAINT fk_emp_dept1 -> FOREIGN KEY(deptId) REFERENCES tb_dept1(id) -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_emp6; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(25) | YES | | NULL | | | deptId | int(11) | YES | MUL | NULL | | | salary | float | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 4 rows in set (1.33 sec)
Nachdem die obige Anweisung erfolgreich ausgeführt wurde, wird eine Fremdschlüsseleinschränkung mit dem Namen fk_emp_dept1 zur Tabelle tb_emp6 hinzugefügt. Der Fremdschlüsselname ist deptId, der von der Primärschlüssel-ID der Tabelle tb_dept1 abhängt.
Hinweis: Der Fremdschlüssel der Sekundärtabelle muss mit dem Primärschlüssel der Primärtabelle verknüpft sein und die Datentypen des Primärschlüssels und des Fremdschlüssels müssen konsistent sein. Beispielsweise sind beide vom Typ INT oder beide vom Typ CHAR. Wenn diese Anforderungen nicht erfüllt sind, tritt beim Erstellen der Slave-Tabelle der Fehler „ERROR 1005 (HY000): Tabelle kann nicht erstellt werden“ auf.
Empfohlenes Tutorial: MySQL-Tutorial
Das obige ist der detaillierte Inhalt vonSo erstellen Sie MySQL-Fremdschlüsseleinschränkungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!