Hallo SelfPHP Community,
ich habe eine Frage zu MySQL Datenbanken. Ich versuche eine Referenz auf die eigene Tabelle zu erstellen.
Code:
CREATE TABLE host
(
hid bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(64) UNIQUE,
ref bigint(20) UNSIGNED DEFAULT NULL,
os varchar(32),
description varchar(2048),
incident boolean NOT NULL DEFAULT 0,
alert boolean NOT NULL DEFAULT 0,
action_id int(10) UNSIGNED DEFAULT 11,
action_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
action_user_id bigint(20) UNSIGNED DEFAULT 0,
FOREIGN KEY (hid) REFERENCES host(hid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
In der Tabelle host gibt können verschiedenste Server drin stehen. Das Programm was auf die DB zugreift verarbeitet alles Server gleich. Manche dieser Server sind aber Aliase. Das heißt es werden unterschiedliche Namen verwendet für einen Server. Und genau hier will ich die Spalte ref füllen, sodass ich hier den richtigen Servernamen eintragen kann.
Ich kann zwar die Tabelle so anlegen, aber ich kann diese nicht befüllen, weil folgender Fehler auftritt.
Cannot add or update a child row: a foreign key constraint fails (`EMC_DB`.`host`, CONSTRAINT `host_ibfk_1` FOREIGN KEY (`hid`) REFERENCES `host` (`hid`))
Was mache ich falsch? Oder ist mein Ansatz von Grund auf fehlerhaft?
Gruß