Heim Datenbank MySQL-Tutorial Definition und Einschränkungen von Fremdschlüsseln in MySQL-Datenbanken

Definition und Einschränkungen von Fremdschlüsseln in MySQL-Datenbanken

Mar 15, 2024 pm 12:36 PM
Fremdschlüsseldefinition Fremdschlüsselbeschränkungen MySQL-Fremdschlüssel

Definition und Einschränkungen von Fremdschlüsseln in MySQL-Datenbanken

Titel: Definition und Einschränkungen von Fremdschlüsseln in MySQL-Datenbanken

In MySQL-Datenbanken ist ein Fremdschlüssel eine Einschränkung, die zum Herstellen einer Beziehung zwischen Tabellen verwendet wird. Fremdschlüssel stellen sicher, dass Daten in einer Tabelle mit Daten in einer anderen Tabelle verknüpft sind. Durch die Definition von Fremdschlüsseln können wir referenzielle Integrität zwischen Daten erreichen, um Datenkonsistenz und -zuverlässigkeit sicherzustellen.

1. Definition des Fremdschlüssels

In MySQL kann der Fremdschlüssel durch die folgende Syntax definiert werden:

CREATE TABLE 表名 (
    列名 数据类型,
    外键列名 数据类型,
    FOREIGN KEY (外键列名) REFERENCES 关联表名(关联列名)
);
Nach dem Login kopieren

wobei 外键列名 是当前表中需要关联的列名,关联表名 是需要关联的表的表名,关联列名 der Spaltenname ist, der in der zugehörigen Tabelle verknüpft werden muss. Mit dieser Definition können wir eine Eins-zu-Viele-Beziehung zwischen Tabellen herstellen.

2. Einschränkungen für Fremdschlüssel

Bei der Definition von Fremdschlüsseln können wir einige Einschränkungen hinzufügen, um die Integrität der Daten sicherzustellen. Im Folgenden sind einige allgemeine Fremdschlüsseleinschränkungen aufgeführt:

  • ON DELETE CASCADE: Wenn ein Datensatz in der Master-Tabelle gelöscht wird, werden auch die zugehörigen Datensätze in der Slave-Tabelle gelöscht.
  • ON DELETE SET NULL: Wenn ein Datensatz in der Haupttabelle gelöscht wird, wird der Fremdschlüsselwert des zugehörigen Datensatzes in der Slave-Tabelle auf NULL gesetzt.
  • ON UPDATE CASCADE: Wenn der Primärschlüsselwert des Datensatzes in der Mastertabelle aktualisiert wird, wird auch der Fremdschlüsselwert des zugehörigen Datensatzes in der Slavetabelle aktualisiert.
  • ON UPDATE SET NULL: Wenn der Primärschlüsselwert eines Datensatzes in der Master-Tabelle aktualisiert wird, wird der Fremdschlüsselwert des zugehörigen Datensatzes in der Slave-Tabelle auf NULL gesetzt.

Das Folgende ist ein Beispiel für eine bestimmte Fremdschlüsseldefinition und -beschränkung:

CREATE TABLE 父表 (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

CREATE TABLE 子表 (
    id INT PRIMARY KEY,
    parent_id INT,
    FOREIGN KEY (parent_id) REFERENCES 父表(id) ON DELETE CASCADE
);
Nach dem Login kopieren

In diesem Beispiel wird eine Eins-zu-Viele-Beziehung zwischen der übergeordneten Tabelle und der untergeordneten Tabelle hergestellt Beim Löschen werden auch die damit verbundenen untergeordneten Tabellendatensätze gelöscht, wodurch die Datenintegrität und -konsistenz sichergestellt wird.

Anhand der obigen Einführung können wir erkennen, dass die Definition und Einschränkung von Fremdschlüsseln sehr wichtig ist. Dies kann uns dabei helfen, die Beziehung zwischen Tabellen herzustellen und die Daten in der Datenbank effektiv zu verwalten.

Das obige ist der detaillierte Inhalt vonDefinition und Einschränkungen von Fremdschlüsseln in MySQL-Datenbanken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker Reduzieren Sie die Verwendung des MySQL -Speichers im Docker Mar 04, 2025 pm 03:52 PM

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen Mar 04, 2025 pm 04:01 PM

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Was ist SQLite? Umfassende Übersicht Was ist SQLite? Umfassende Übersicht Mar 04, 2025 pm 03:55 PM

Was ist SQLite? Umfassende Übersicht

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin) Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin) Mar 04, 2025 pm 03:54 PM

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung Mar 04, 2025 pm 03:49 PM

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)? Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)? Mar 18, 2025 pm 12:00 PM

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)?

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)?

See all articles