Heim > Datenbank > MySQL-Tutorial > So schreiben Sie Fremdschlüsseleinschränkungen beim Erstellen einer Tabelle in MySQL

So schreiben Sie Fremdschlüsseleinschränkungen beim Erstellen einer Tabelle in MySQL

下次还敢
Freigeben: 2024-04-22 19:51:38
Original
1217 Leute haben es durchsucht

Das Erstellen von Tabellen-Fremdschlüsseleinschränkungen in MySQL stellt die referenzielle Integrität sicher. Die Schritte sind wie folgt: Erstellen Sie zwei Tabellen und geben Sie Primärschlüssel an. Fügen Sie der untergeordneten Tabelle eine FOREIGN KEY-Einschränkung hinzu, die auf den Primärschlüssel der übergeordneten Tabelle verweist. Geben Sie optional Referenzaktionen an (z. B. kaskadierende Löschvorgänge oder eingeschränkte Aktualisierungen).

So schreiben Sie Fremdschlüsseleinschränkungen beim Erstellen einer Tabelle in MySQL

Erstellen Sie Tabellen-Fremdschlüsseleinschränkungen in MySQL.

Wenn eine Fremdschlüsseleinschränkung zwischen zwei Tabellen eingerichtet wird, kann die referenzielle Integrität zwischen ihnen sichergestellt werden. Die folgenden Schritte führen in die Erstellung von Tabellen-Fremdschlüsseleinschränkungen in MySQL ein:

Schritt 1: Erstellen Sie zwei Tabellen

Erstellen Sie zwei Tabellen, in denen wir Fremdschlüsseleinschränkungen festlegen möchten:

<code class="sql">CREATE TABLE parent_table (
    id INT NOT NULL,
    name VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE child_table (
    id INT NOT NULL,
    parent_id INT NOT NULL,
    value VARCHAR(255) NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (parent_id) REFERENCES parent_table(id)
);</code>
Nach dem Login kopieren

Schritt 2: Fremdschlüsseleinschränkungen hinzufügen in der untergeordneten Tabelle

Verwenden Sie in child_table die Einschränkung FOREIGN KEY, um die Spalte parent_id auf parent_table <code>id zu verweisen -Spalte in : child_table 中,使用 FOREIGN KEY 约束将 parent_id 列引用到 parent_table 中的 id 列:

<code class="sql">ALTER TABLE child_table
ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id);</code>
Nach dem Login kopieren

第三步:指定引用操作(可选)

您可以使用 ON DELETEON UPDATE 子句指定在对父表进行删除或更新操作时对子表中受影响记录的行为:

<code class="sql">ALTER TABLE child_table
ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id)
ON DELETE CASCADE
ON UPDATE RESTRICT;</code>
Nach dem Login kopieren

在这段代码中:

  • ON DELETE CASCADE:当从 parent_table 中删除记录时,将自动从 child_table 中级联删除相关记录。
  • ON UPDATE RESTRICT:当 parent_table 中的记录被更新时,将阻止对 child_tablerrreee
Schritt 3: Referenzvorgang angeben (optional)

Sie können ON DELETE und The ON UPDATE verwenden Die Klausel gibt das Verhalten für betroffene Datensätze in der untergeordneten Tabelle an, wenn ein Lösch- oder Aktualisierungsvorgang für die übergeordnete Tabelle ausgeführt wird:

rrreee
    In diesem Code:
  • ON DELETE CASCADE: Wenn ein Datensatz gelöscht wird Aus parent_table werden zugehörige Datensätze in der Kaskade automatisch aus child_table gelöscht.
  • ON UPDATE RESTRICT: Wenn ein Datensatz in parent_table aktualisiert wird, werden alle Aktualisierungen der betroffenen Datensätze in child_table blockiert.
Anleitung: 🎜🎜🎜🎜Stellen Sie sicher, dass der Spaltendatentyp in der übergeordneten Tabelle mit dem der Fremdschlüsselspalte in der untergeordneten Tabelle übereinstimmt. 🎜🎜Wenn eine Spalte in der übergeordneten Tabelle Nullwerte zulässt, muss die Fremdschlüsselspalte in der untergeordneten Tabelle auch Nullwerte zulassen. 🎜🎜Wenn Sie eine Spalte in der übergeordneten Tabelle ändern, nachdem Sie eine Fremdschlüsseleinschränkung erstellt haben, müssen Sie die Fremdschlüsseleinschränkung ändern, um sie an die Änderungen anzupassen. 🎜🎜Fremdschlüsseleinschränkungen tragen dazu bei, die Datenintegrität sicherzustellen und das Einfügen und Löschen inkonsistenter Daten zu verhindern. 🎜🎜

Das obige ist der detaillierte Inhalt vonSo schreiben Sie Fremdschlüsseleinschränkungen beim Erstellen einer Tabelle in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage