InnoDB - foreign key

Kategorie: MySQL
Publikationsdatum: 07.04.2011
Unter der referenziellen Integrität versteht man folgendes:
Die Tabelle 2 steht mit der Tabelle 1 mittels eines Fremdschlüssels in Verbindung. Dieser Fremdschlüssel kann nun aber nur Werte annehmen, die im Primärschlüssel der referenzierten Tabelle schon enthalten sind.
Diese aktive Beziehung ist dann von Vorteil, wenn viele Tabellenverknüpfungen vorhanden sind und die Kinder beim Löschen des Elternelements ebenfalls (ohne zusätzliche Queries) gelöscht werden möchten.

Um die referenzielle Integrität verwenden zu können, muss man den Datenbank-Typ auf InnoDB ändern und den nachfolgenden Zusatz verwenden.
MySQL
  1. CREATE TABLE `parent` (
  2. `id` INT NOT NULL, PRIMARY KEY (`id`),
  3. `name` VARCHAR(20)
  4. ) ENGINE=INNODB;
  5.  
  6.  
  7. CREATE TABLE `child` (
  8. `id` INT NOT NULL, PRIMARY KEY (`id`),
  9. `name` VARCHAR(20),
  10. `fk_parent` INT NOT NULL,
  11. FOREIGN KEY (`fk_parent`) REFERENCES `parent`(`id`) ON DELETE CASCADE
  12. ) ENGINE=INNODB;
Mit dem Zusatz DELETE CASCADE beim Erstellen der Tabelle, werden die dazugehörigen Kinder gelöscht, wenn eine Eltern-Element gelöscht wird.
Stichwörter: MYSQL, InnoDB - foreign key, referenzielle Integrität, Fremdschlüssel, Fremdkey
 
 
NACH OBEN