加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite Unique Key,包含两列组合

发布时间:2020-12-12 19:13:41 所属栏目:百科 来源:网络整理
导读:我正在努力确保当我运行以下查询时,只有第一个INSERT INTO才能工作..我知道我必须使插槽独一无二 插槽可以是0-5 INTEGER,但这并不意味着该表中只能接受6个表数据行. 对于匹配它的每个playerHash应该只允许6个表数据行作为插槽是UNIQUE(对于每个playerHash列,
我正在努力确保当我运行以下查询时,只有第一个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));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读