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=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.