SQLite Unique Key,包含两列组合

SQLite Unique Key,包含两列组合,第1张

概述我正在努力确保当我运行以下查询时,只有第一个INSERT INTO才能工作..我知道我必须使插槽独一无二 插槽可以是0-5 INTEGER,但这并不意味着该表中只能接受6个表数据行. 对于匹配它的每个playerHash应该只允许6个表数据行作为插槽是UNIQUE(对于每个playerHash列,不能有相同插槽列的副本). //Below Query Should PassINSERT INTO 我正在努力确保当我运行以下查询时,只有第一个INSERT INTO才能工作..我知道我必须使插槽独一无二

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

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

//Below query Should PassINSERT INTO Buying(itemID,amount,price,bought,slot,playerHash) VALUES (1,1,1);//Below query Should FailINSERT INTO Buying(itemID,1);//Below query Should PassINSERT INTO Buying(itemID,2);//Below query Should FailINSERT INTO Buying(itemID,2);//Below query Should PassINSERT 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 Unique Key,包含两列组合全部内容,希望文章能够帮你解决SQLite Unique Key,包含两列组合所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1161524.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存