Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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);

Geschrieben

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.

Geschrieben (bearbeitet)

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
Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...