Hallo zusammen,
ich habe mir in phpMyAdmin eine Tabelle angelegt um Kommentare zu News zu speichern:
Die Spalten "user_id" und "news_id" sind Fremdschlüssel aus anderen Tabellen. Die Spalte "comment_id" sollte jedoch ein Fremdschlüssel aus der eigenen Tabelle sein. Angelegt wurde der Fremdschlüssel mit "ON DELETE CASCADE ON UPDATE NO ACTION", damit beim Löschen des Hauptkommentars, alles darunter ebenfalls gelöscht wird, beim Update jedoch nichts passiert.
Wenn ich nun einen neuen Eintrag anlegen möchte, erscheint folgende Meldung:
Hat jemand eine Idee warum und wie ich es hin bekomme, dass der Fremdschlüssel auf die eigene Tabelle zeigen kann?
Viele Grüße
M3Y3R
ich habe mir in phpMyAdmin eine Tabelle angelegt um Kommentare zu News zu speichern:
Code:
CREATE TABLE `comments` (
`id` int(11) NOT NULL,
`user_id` int(10) NOT NULL,
`news_id` int(10) NOT NULL,
`comment_id` int(10) NOT NULL DEFAULT '0',
`comment` longtext NOT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `comments`
ADD PRIMARY KEY (`id`),
ADD KEY `news_id` (`news_id`),
ADD KEY `comment_id` (`comment_id`) USING BTREE;
ALTER TABLE `comments`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `comments`
ADD CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`news_id`) REFERENCES `news` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
ADD CONSTRAINT `comments_ibfk_2` FOREIGN KEY (`comment_id`) REFERENCES `comments` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION;
Die Spalten "user_id" und "news_id" sind Fremdschlüssel aus anderen Tabellen. Die Spalte "comment_id" sollte jedoch ein Fremdschlüssel aus der eigenen Tabelle sein. Angelegt wurde der Fremdschlüssel mit "ON DELETE CASCADE ON UPDATE NO ACTION", damit beim Löschen des Hauptkommentars, alles darunter ebenfalls gelöscht wird, beim Update jedoch nichts passiert.
Wenn ich nun einen neuen Eintrag anlegen möchte, erscheint folgende Meldung:
Code:
#1452 - Kann Kind-Zeile nicht hinzufügen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (`comments`, CONSTRAINT `comments_ibfk_2` FOREIGN KEY (`comment_id`) REFERENCES `comments` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION)
Hat jemand eine Idee warum und wie ich es hin bekomme, dass der Fremdschlüssel auf die eigene Tabelle zeigen kann?
Viele Grüße
M3Y3R