Hallo,
ich habe ein sehr wichtige frage zu einem einfachen Problem. Seit kurzem erlerne ich den Umgang mit Datenbanken. dabei bin ich auf ein Problem gestoßen, welches ich nur schwer formulieren kann.
wenn man einer Tabelle einen neuen Datensatz einfügt und in dieser Tabelle der Wert des Primärschlüssels durch Auto_Increment (d.h. der Anwender kennt den Wert des Schlüssel_id von dem neuen Datensatz nicht) erzeugt wird, kann man dann den Wert dieses Primärschlüssels des eingefügten Datensatzes ausgeben oder ermitteln?
Das aufsuchen des Datensatzes durch andere Attribute ist leider nicht möglich, da die anderen Attribute keine Eindeutigkeit aufweisen.
Beispiel
ich möchte Reservierungen in einer Tabelle einfügen. Und eine Relation zwischen dem Gast und seine getätigten Reservierungen erzeugen.
wie man sieht, tritt das Problem auf, dass bei einer neuen Reservierung die entsprechende ID in die Tabelle reserviert übertragen werden muss. Da die Tabelle "reserviert" die Relation zwischen den beiden Tabellen "Gast" und "Reservierung" bildet benötigt sie auch die ID der Tabelle "Gast". Gibt es eine Möglichkeit bei einem neuen Eintrag in die Tabelle "Reservierung" die reservierung_id und Gast_id in die Tabelle "reserviert" automatisch einzufügen? Oder liegt hier ein Denkfehler vor?
MFG
enrix
ich habe ein sehr wichtige frage zu einem einfachen Problem. Seit kurzem erlerne ich den Umgang mit Datenbanken. dabei bin ich auf ein Problem gestoßen, welches ich nur schwer formulieren kann.
wenn man einer Tabelle einen neuen Datensatz einfügt und in dieser Tabelle der Wert des Primärschlüssels durch Auto_Increment (d.h. der Anwender kennt den Wert des Schlüssel_id von dem neuen Datensatz nicht) erzeugt wird, kann man dann den Wert dieses Primärschlüssels des eingefügten Datensatzes ausgeben oder ermitteln?
Das aufsuchen des Datensatzes durch andere Attribute ist leider nicht möglich, da die anderen Attribute keine Eindeutigkeit aufweisen.
Beispiel
ich möchte Reservierungen in einer Tabelle einfügen. Und eine Relation zwischen dem Gast und seine getätigten Reservierungen erzeugen.
Code:
CREATE TABLE Reservierung (
id INT NOT NULL AUTO_INCREMENT,
status varchar(10),
anmerkung varchar(250),
PRIMARY KEY(ID)
);
CREATE TABLE Gast(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(60),
vorname VARCHAR(60),
PRIMARY KEY(ID)
);
bei jeder neuen Reservierung sollen die ID's des neuen Datensatzes in die Tabelle reserviert übertragen werden.
CREATE TABLE reserviert (
reservierung_id INT,
Gast_id INT,
PRIMARY KEY (reservierung_id, Gast_id),
FOREIGN KEY (reservierung_id) REFERENCES reservierung (ID),
FOREIGN KEY (Gast_id) REFERENCES Gast (ID)
);
MFG
enrix