Referenzielle Integrität mit XAMPPlite - InnoDB
Aus Informatik
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=INNODBvergisst.
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.