Ich versuche, um sicherzustellen, dass, wenn ich die folgende Abfrage nur die ersten INSERT INTO
funktionieren laufen .. Ich weiß, ich slot
UNIQUE
SQLite Eindeutiger Schlüssel mit einer Kombination aus zwei Spalten
Der Schlitz aus könnte machen 0-5 INTEGER, aber es bedeutet nicht, dass nur 6 Tabellendatenzeilen in diese Tabelle akzeptiert werden können.
Für jeden playerHash, der zu ihm passt, sollten nur 6 Tabellendatenzeilen zulässig sein, da slot
UNIQUE
ist (für jede playerHash-Spalte darf kein Duplikat derselben Slotspalte vorhanden sein).
//Below Query Should Pass
INSERT INTO Buying(itemId, amount, price, bought, slot, playerHash) VALUES (1, 1, 1, 1, 1, 1);
//Below Query Should Fail
INSERT INTO Buying(itemId, amount, price, bought, slot, playerHash) VALUES (1, 1, 1, 1, 1, 1);
//Below Query Should Pass
INSERT INTO Buying(itemId, amount, price, bought, slot, playerHash) VALUES (1, 1, 1, 1, 1, 2);
//Below Query Should Fail
INSERT INTO Buying(itemId, amount, price, bought, slot, playerHash) VALUES (1, 1, 1, 1, 1, 2);
//Below Query Should Pass
INSERT INTO Buying(itemId, amount, price, bought, slot, playerHash) VALUES (1, 1, 1, 1, 0, 2);
Problem natürlich ist sie Allpaß und verursachen doppelte Einträge
Derzeit verwende ich diese DDL Tabelle
CREATE TABLE Buying (
id INTEGER PRIMARY KEY AUTOINCREMENT,
itemId INTEGER NOT NULL,
amount INTEGER NOT NULL,
price INTEGER NOT NULL,
bought INTEGER NOT NULL,
collected INTEGER NOT NULL
DEFAULT (0),
overpaid INTEGER NOT NULL
DEFAULT (0),
slot INTEGER NOT NULL,
aborted BOOLEAN NOT NULL
DEFAULT (0),
playerHash INTEGER NOT NULL
);
großen Werke jetzt erste Einsatz Übergibt nächsten Einsatz gibt mir. Fehler 'Fehler beim Ausführen der Abfrage: Spalten Slot, playerHash sind nicht eindeutig' – SSpoke
Ich wusste nicht, wie man sie auf einzigartige Weise mit SQLiteStudio verknüpfen, stellt sich heraus, es hat nichts mit der Bearbeitung von Spalten zu einzigartigen usw. zu tun. Sie mussten nur eine Tabellenbeschränkung mit Type Unique erstellen und dann die Kontrollkästchen für die einzelnen Spalten aktivieren. – SSpoke
@SSpoke erinnern, [introhrow] anstatt [einfügen] zu verwenden –