SQLite Unique Key,包含两列组合

前端之家收集整理的这篇文章主要介绍了SQLite Unique Key,包含两列组合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力确保当我运行以下查询时,只有第一个INSERT INTO才能工作..我知道我必须使插槽独一无二

插槽可以是0-5 INTEGER,但这并不意味着该表中只能接受6个表数据行.

对于匹配它的每个playerHash应该只允许6个表数据行作为插槽是UNIQUE(对于每个playerHash列,不能有相同插槽列的副本).

//Below Query Should Pass
INSERT INTO Buying(itemId,amount,price,bought,slot,playerHash) VALUES (1,1,1);
//Below Query Should Fail
INSERT INTO Buying(itemId,1);
//Below Query Should Pass
INSERT INTO Buying(itemId,2);
//Below Query Should Fail
INSERT INTO Buying(itemId,2);
//Below Query Should Pass
INSERT INTO Buying(itemId,2);

问题当然是它们都通过并导致重复的条目

目前我使用这个表DDL

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 
);
添加到您的ddl
create table ... ( ...
...,unique(slot,player));

猜你在找的Sqlite相关文章