Zum Inhalt springen

SQL Fragen (alter, on delete cascade)


Empfohlene Beiträge

Sagen wir mal ich habe eine Tabelle.... wie kann ich nun nachträglich kunden_id als Primärschlüssel "altern"? und was genau macht on delete cascade? Dass mysql nicht rummeckert, wenn ich eins der beiden einträge in der unteren tabelle lösche? Sprich, er würde dann alle mit herr bzw frau in der kunden tabelle löschen?

CREATE TABLE kunden(

kunden_id (int 100) AUTO_INCREMENT, <--- hier primary key vergessen

name varchar(30),

vorname varchar(30),

anrede varchar (5) FOREIGN KEY REFERENCES anrede(anrede_id) ON DELETE CASCADE <--?

);

CREATE TABLE anrede(

anrede_id bool PRIMARY KEY,

anrede varchar(5)

);

insert into anrede (anrede_id, anrede) values (0, 'herr');

insert into anrede (anrede_id, anrede) values (1, 'frau');

insert into kunden (name, vorname, anrede) values ('mueller', 'andreas', 0);

Link zu diesem Kommentar
Auf anderen Seiten teilen

In MySQL dürfte das sollte das so gehen (wenn noch kein primary key existiert, ansonsten "DROP PRIMARY KEY" vorher):

ALTER TABLE kunden ADD PRIMARY KEY(kunden_id);

Mit "on delete cascade" werden beim Löschen einer Zeile der Elterntabelle, die damit verbundenen Zeilen der Kindtabelle auch gelöscht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hätte es nun so gemacht

ALTER TABLE kunden MODIFY kunden_id ADD PRIMARY KEY (kunden_id);

meinste das geht so auch?

In MySQL dürfte das sollte das so gehen (wenn noch kein primary key existiert, ansonsten "DROP PRIMARY KEY" vorher):

ALTER TABLE kunden ADD PRIMARY KEY(kunden_id);

Mit "on delete cascade" werden beim Löschen einer Zeile der Elterntabelle, die damit verbundenen Zeilen der Kindtabelle auch gelöscht.

jo wenn ich nun delete from anrede where anrede like "frau" or where anrede_id = 1;

mache würden nun in der kundentabellle alle frauen gelöscht werden?

Bearbeitet von Waschmaschine
Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit modify sollte das auch gehen, sieht dann aber eher so aus:

ALTER TABLE kunden MODIFY kunden_id PRIMARY KEY

Zu on delete cascade:

Das hängt natürlich davon ab in welche Richtung referenziert wird, aber ja (auch wenn es an der Stelle vielleicht nicht unbedingt sinnvoll ist).

Gutes Beispiel bei Wikipedia:

Die Tabelle "Prüfung" hat als Foreign Key die Id der Tabelle Student. Wenn der Student gelöscht wird, gibts auch die Prüfung für diesen Student nicht mehr.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...