Ich versuche, eine neue SQLite-Datenbank mit Zeilen zu füllen, die auf einer Reihe von Daten basieren, aber ich habe Probleme, doppelte Zeilen zu vermeiden. Ich könnte dies in Python erreichen, aber es muss sicherlich eine Design-Option in SQLite geben, um das zu handhaben.
Ich brauche jede Zeile nur für eine eindeutige Kombination von drei Textfeldern. Wenn ich jedes Textfeld mit UNIQUE eingeschränkt habe, müssen alle drei eindeutig sein. Aber ich würde stattdessen eine einzigartige Kombination der drei Saiten mögen.
Mit anderen Worten, diese Datensätze sollten alle existieren können: (a, a, a) (a, a, b) (a, b, b) (b, b, b)
Wenn ich alle drei Felder UNIQUE mache und diese Zeilen einfüge, werden nur (a, a, a) und (b, b, b) eingefügt. Ich könnte die Felder 1-3 in Python verketten und diese als Primärschlüssel verwenden, aber es scheint wie zusätzliche Arbeit.
Wenn die drei Spalten wirklich der Primärschlüssel sind, können Sie einen zusammengesetzten Primärschlüssel erstellen:
%Vor%Wenn eine Ihrer drei Spalten NULL sein kann, sollten Sie stattdessen die Cade-Einschränkung verwenden.
Tags und Links python sqlite database-design unique-constraint