Datenbankeintrag bedingt erstellen
Verfasst: Montag 21. Oktober 2013, 08:37
Hallo, ich möchte einen sqlite3-Datenbanktabelleneintrag unter der Bedingung erstellen, dass ein gleicher Eintrag noch nicht existiert. Wie geht das?
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Wenn alle Werte gleich sind, ist er gleich. Entscheidend ist in meinem Fall allerdings eine einzelne Spalte. Wenn also bereits ein Eintrag mit dem in diese Spalte einzutragende Wert besteht, soll kein neuer Eintrag erstellt werden.Hyperion hat geschrieben:Wie ist denn ein "gleicher" Datensatz definiert? Ohne dieses Wissen kann man dazu schlecht etwas konkretes sagen...
Ich würde ja einfach die Spalte UNIQUE definieren und auf einen entsprechenden zurückgemeldeten Fehler des Datenbanksystems passend reagieren.Aries hat geschrieben:Entscheidend ist in meinem Fall allerdings eine einzelne Spalte. Wenn also bereits ein Eintrag mit dem in diese Spalte einzutragende Wert besteht, soll kein neuer Eintrag erstellt werden.
Danke, das funktioniert./me hat geschrieben:Ich würde ja einfach die Spalte UNIQUE definieren und auf einen entsprechenden zurückgemeldeten Fehler des Datenbanksystems passend reagieren.Aries hat geschrieben:Entscheidend ist in meinem Fall allerdings eine einzelne Spalte. Wenn also bereits ein Eintrag mit dem in diese Spalte einzutragende Wert besteht, soll kein neuer Eintrag erstellt werden.
Ich habe jetzt ein leicht anderes Problem: Jetzt kommt es nicht mehr nur auf eine einzelne Spalte an. Stattdessen soll ein Eintrag nur dann verhindert werden, wenn ein in allen Spalten gleicher Eintrag bereits existiert. Wie kann man das erreichen?Aries hat geschrieben:Wenn alle Werte gleich sind, ist er gleich. Entscheidend ist in meinem Fall allerdings eine einzelne Spalte. Wenn also bereits ein Eintrag mit dem in diese Spalte einzutragende Wert besteht, soll kein neuer Eintrag erstellt werden.Hyperion hat geschrieben:Wie ist denn ein "gleicher" Datensatz definiert? Ohne dieses Wissen kann man dazu schlecht etwas konkretes sagen...
Das kann man dadurch erreichen, dass man alle Spalten gemeinsam als Unique definiert.Aries hat geschrieben:Ich habe jetzt ein leicht anderes Problem: Jetzt kommt es nicht mehr nur auf eine einzelne Spalte an. Stattdessen soll ein Eintrag nur dann verhindert werden, wenn ein in allen Spalten gleicher Eintrag bereits existiert. Wie kann man das erreichen?
Wenn ich folgende Seite (http://www.sqlite.org/lang_createtable.html) richtig verstehe müsste das dann so aussehen:/me hat geschrieben:Das kann man dadurch erreichen, dass man alle Spalten gemeinsam als Unique definiert.Aries hat geschrieben:Ich habe jetzt ein leicht anderes Problem: Jetzt kommt es nicht mehr nur auf eine einzelne Spalte an. Stattdessen soll ein Eintrag nur dann verhindert werden, wenn ein in allen Spalten gleicher Eintrag bereits existiert. Wie kann man das erreichen?