Hallo
Ich hab leider ein Problem beim korrekten erstellen meiner SQL Datenbanken.
Es sind 3 Tables vorhanden:
In der 1. Tabelle sind die User gespeichert.
In der 2. Tabelle die Kurse.
Die 3. Tabelle enthält pro Datensatz jeweils die ID eines User + die ID eines Kurses.
Um das löschen/updaten der ID in den Tabellen zu unterbinden haben ich den Foreign Keys: on update cascade on delete restrict hinzugefügt.
Allerdings lassen sich in den beiden Tabellen dennoch beliebig Datensätze löschen bzw. die ID ändern.
Woran liegt das?
Hier die von mir verwendeten SQL Befehle:
User DB:
Kurse DB:
Und die 3. Tabelle mit den Foreign Keys:
Vielen Dank
mit freundlichen Grüßen
Lync
Ich hab leider ein Problem beim korrekten erstellen meiner SQL Datenbanken.
Es sind 3 Tables vorhanden:
In der 1. Tabelle sind die User gespeichert.
In der 2. Tabelle die Kurse.
Die 3. Tabelle enthält pro Datensatz jeweils die ID eines User + die ID eines Kurses.
Um das löschen/updaten der ID in den Tabellen zu unterbinden haben ich den Foreign Keys: on update cascade on delete restrict hinzugefügt.
Allerdings lassen sich in den beiden Tabellen dennoch beliebig Datensätze löschen bzw. die ID ändern.
Woran liegt das?
Hier die von mir verwendeten SQL Befehle:
User DB:
Code:
Create table schueler ( `ID` INT(4) NOT NULL AUTO_INCREMENT, `SchuelerNR` VARCHAR(20) NOT NULL, `Name` VARCHAR(20) NOT NULL, `Vorname` VARCHAR(20) NOT NULL, `Klasse` VARCHAR(2) NOT NULL, Primary Key(ID) );
Create table kurse (
`KID` INT(2) NOT NULL AUTO_INCREMENT,
`Thema` VARCHAR(150) NOT NULL,
`Beschreibung` TEXT NULL,
`Teilnehmer` INT(2) NOT NULL,
Primary Key(KID)
);
`KID` INT(2) NOT NULL AUTO_INCREMENT,
`Thema` VARCHAR(150) NOT NULL,
`Beschreibung` TEXT NULL,
`Teilnehmer` INT(2) NOT NULL,
Primary Key(KID)
);
Create table teilnahme (
`TID` INT(4) NOT NULL AUTO_INCREMENT,
`Schueler` INT(4) NOT NULL,
`Veranstaltung` INT(2) NOT NULL,
Primary Key(TID),
Foreign Key (Schueler)
references schueler(ID)
on update cascade
on delete restrict,
Foreign Key (Veranstaltung) references kurse(KID)
on update cascade
on delete restrict
);
`TID` INT(4) NOT NULL AUTO_INCREMENT,
`Schueler` INT(4) NOT NULL,
`Veranstaltung` INT(2) NOT NULL,
Primary Key(TID),
Foreign Key (Schueler)
references schueler(ID)
on update cascade
on delete restrict,
Foreign Key (Veranstaltung) references kurse(KID)
on update cascade
on delete restrict
);
mit freundlichen Grüßen
Lync
Comment