Referenzielle Integrität mit XAMPPlite - InnoDB

Aus Informatik
Wechseln zu: Navigation, Suche

Tabellen anlegen

Tabellen werden nun folgendermaßen angelegt:

 CREATE TABLE abteilungen (anr INT PRIMARY KEY,
                           name VARCHAR(255)
                          ) ENGINE=INNODB;

Wichtig ist dabei, dass man bei keiner der Tabellen das

 ENGINE=INNODB

vergisst.

Ansonsten gilt die gelernte Syntax, z.B.:

 CREATE TABLE mitarbeiter (mnr INT PRIMARY KEY, name VARCHAR(255), anr INT,
                           FOREIGN KEY (anr) REFERENCES abteilungen(anr)
                             ON UPDATE CASCADE ON DELETE SET NULL 
                          ) ENGINE=INNODB;

Nun funktioniert alles so, wie es soll. Daten kann man wie gehabt einfügen:

 INSERT INTO abteilungen
 VALUES
 (1, 'n00bs'),
 (2, 'Kaffeekueche'),
 (3, 'Chefetage');
 
 INSERT INTO mitarbeiter
 VALUES
 (1, 'niemand', 1),
 (2, 'keiner', 1),
 (3, 'jemand', 2);

Da nun referenzielle Integrität gegeben ist, würde in diesem Beispiel folgendes nicht funktionieren:

 INSERT INTO mitarbeiter
 VALUES
 (4, 'jemand', 5);

Grund: Es gibt keine Abteilung 5.