OstapBender
Benutzer
- Beiträge
- 13
Hallo zusammen
Bin ganz frisch dabei MySQL zu lernen.
Habe schon Stunden damit verbracht im Internet eine Lösung zu meinem Problem zu finden. Leider ohne Erfolg. Vielleicht weiß ich auch einfach nicht, wonach ich wirklich suchen muss.
Folgendes Problem:
Ich habe mit MySQL eine Datenbank mit mehreren Tabellen entworfen.
Grundsätzlich geht es dabei um eine Vermietung.
Eine Tabelle "Vermietungen" besteht aus den Spalten "VermietungID", "vmtKundenID", "vmtGegenstandID", "vmtAbholungDatum", "vmtPlanRueckgabeDatum", "IstRueckgabeDatum"
Dabei ist VermietungID der PK, vmtKundenID ein FK, vmtGegenstandID ein FK.
Folgende Werte sollen dabei mithilfe einer gespeicherten Prozedur in die Tabelle "Vermietungen" eingetragen werden.
NameMieter, NameGegenstand, Ausleihdatum, geplanteRueckgabe
Dafür nutze ich
CREATE PROCEDURE `prcVermietung`(
MieterID int,
GegenstandID int,
Abholdatum date,
Rueckgabedatum date
)
BEGIN
insert into tblVermietungen(vmtKundenID, vmtGegengstandID, vmtAbholungDatum, vmtPlanRueckgabeDatum,)
VALUES (@KundenID, @GegenstandID, @Abholdatum, @Rueckgabedatum);
END
Soweit, so gut.
Allerdings möchte ich NUR @Gegenstände auswählen können, welche noch nicht verliehen sind. Ob ein Gegenstand verliehen ist oder nicht mach ich daran fest, ob bei der Spalte IstRueckgabeDatum kein Null Wert eingetragen ist.
Falls der Gegenstand schon verliehen ist, soll es nicht möglich sein diesen Gegenstand nochmals zu verleihen (bzw den Datensatz einzufügen).
Grundsätzlich gehts ja darum, die Auswahl der Gegenstände auf die verfügbaren Gegenstände zu reduzieren.
Falls ich also bei der Prozedur
call prcVermietungen(3,5,"2022-02-03","2022-02-28") den Gegenstand 5 auswähle (welcher bereits verliehen ist), soll kein Eintrag vorgenommen werden (optional: eine Fehlermeldung: "beispieltext" erscheinen.
Wäre super nett, wenn mir jemand bei meinem Problem helfen könnte.
Liebe Grüße
OstapBender
Bin ganz frisch dabei MySQL zu lernen.
Habe schon Stunden damit verbracht im Internet eine Lösung zu meinem Problem zu finden. Leider ohne Erfolg. Vielleicht weiß ich auch einfach nicht, wonach ich wirklich suchen muss.
Folgendes Problem:
Ich habe mit MySQL eine Datenbank mit mehreren Tabellen entworfen.
Grundsätzlich geht es dabei um eine Vermietung.
Eine Tabelle "Vermietungen" besteht aus den Spalten "VermietungID", "vmtKundenID", "vmtGegenstandID", "vmtAbholungDatum", "vmtPlanRueckgabeDatum", "IstRueckgabeDatum"
Dabei ist VermietungID der PK, vmtKundenID ein FK, vmtGegenstandID ein FK.
Folgende Werte sollen dabei mithilfe einer gespeicherten Prozedur in die Tabelle "Vermietungen" eingetragen werden.
NameMieter, NameGegenstand, Ausleihdatum, geplanteRueckgabe
Dafür nutze ich
CREATE PROCEDURE `prcVermietung`(
MieterID int,
GegenstandID int,
Abholdatum date,
Rueckgabedatum date
)
BEGIN
insert into tblVermietungen(vmtKundenID, vmtGegengstandID, vmtAbholungDatum, vmtPlanRueckgabeDatum,)
VALUES (@KundenID, @GegenstandID, @Abholdatum, @Rueckgabedatum);
END
Soweit, so gut.
Allerdings möchte ich NUR @Gegenstände auswählen können, welche noch nicht verliehen sind. Ob ein Gegenstand verliehen ist oder nicht mach ich daran fest, ob bei der Spalte IstRueckgabeDatum kein Null Wert eingetragen ist.
Falls der Gegenstand schon verliehen ist, soll es nicht möglich sein diesen Gegenstand nochmals zu verleihen (bzw den Datensatz einzufügen).
Grundsätzlich gehts ja darum, die Auswahl der Gegenstände auf die verfügbaren Gegenstände zu reduzieren.
Falls ich also bei der Prozedur
call prcVermietungen(3,5,"2022-02-03","2022-02-28") den Gegenstand 5 auswähle (welcher bereits verliehen ist), soll kein Eintrag vorgenommen werden (optional: eine Fehlermeldung: "beispieltext" erscheinen.
Wäre super nett, wenn mir jemand bei meinem Problem helfen könnte.
Liebe Grüße
OstapBender