kostenloser Webspace werbefrei: lima-city


mysql frage zu foreign key -> on delete cascade

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bdsg

    bdsg hat kostenlosen Webspace.

    Folgende 2 Tabellen habe ich erstelt:

    CREATE TABLE XYZ_KOPF (
    	`ID` 			INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	`USER_NAME` 		VARCHAR(64) NOT NULL,
    	...
    )
    ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

    CREATE TABLE XYZ_POSTEN (
    	`ID` 			INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	`KOPF_ID`		INT(11) NOT NULL,
    	...,
    	FOREIGN KEY ( `KOPF_ID` ) REFERENCES XYZ_KOPF ( `ID` )
    		ON DELETE CASCADE
    )
    ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;


    Wenn ich nun einen Eintrag in der Kopf-Tabelle mit dem ID = 1 und n Einträge in der Postentabelle mit dem KOPF_ID = 1 habe , dann müsste doch beim Löschen des Kopf-Eintrages auch sämtliche entsprechenden Posteneinträge gelöscht werden. Korrekt?

    Nur klappt das nicht. Woran kann das liegen bzw. woran liegts?

    Danke!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. bdsg schrieb:
    Folgende 2 Tabellen habe ich erstelt:

    CREATE TABLE XYZ_KOPF (
    	`ID` 			INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	`USER_NAME` 		VARCHAR(64) NOT NULL,
    	...
    )
    ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

    CREATE TABLE XYZ_POSTEN (
    	`ID` 			INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	`KOPF_ID`		INT(11) NOT NULL,
    	...,
    	FOREIGN KEY ( `KOPF_ID` ) REFERENCES XYZ_KOPF ( `ID` )
    		ON DELETE CASCADE
    )
    ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;


    Wenn ich nun einen Eintrag in der Kopf-Tabelle mit dem ID = 1 und n Einträge in der Postentabelle mit dem KOPF_ID = 1 habe , dann müsste doch beim Löschen des Kopf-Eintrages auch sämtliche entsprechenden Posteneinträge gelöscht werden. Korrekt?

    Nur klappt das nicht. Woran kann das liegen bzw. woran liegts?

    Danke!
    könnte das hier behilflich sein?
  4. Autor dieses Themas

    bdsg

    bdsg hat kostenlosen Webspace.

    Auf welchen Punkt spielst du an?

    Laut dem letzten Beitrag da, soll eine Stored Procedure angelegt werden. Das ist ja wohl nicht Sinn und Zweck von Foreign Keys. Und mein "ON DELETE CASCADE" habe ich ja auch drin.

    Wenn ich das Ganze im MSSQL anlege, funktioniert das wunderbar.
  5. bdsg schrieb:
    Auf welchen Punkt spielst du an? ...
    an sich auf den 2. aber wenn das wenig hilfe bietet, dann kann ich nur das hier empfehlen und zwar suche auf der seite nach dem untertitel 'Cascading UPDATES and DELETES'.

  6. Autor dieses Themas

    bdsg

    bdsg hat kostenlosen Webspace.

    Achjo, nun wird klar.


    In this article we examined how we could programmatically enforce foreign keys on storage engines which do not natively support them. This was done by the use of triggers.


    Verwende ich also InnoDB anstatt MyISAM dann gehts sofort.

    Beitrag zuletzt geändert: 18.12.2012 21:19:42 von bdsg
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!