
插槽可以是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,包含两列组合所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)