在下面的代码段中,我有两列UNIQUE(MEMBER_NAME& KEY_CALORIES)。如果两列都相同,我只希望它是独一无二的。我想尝试UNIQUE(MEMBER_NAME,KEY_CALORIES),或者其他内容。
我想要完成的例子: 也许用户输入MEMBER_NAME(但该名称已经在数据库中)但KEY_CALORIES不同我希望能够将该项添加到SQLite数据库。如果用户输入已存在的MEMBER_NAME和KEY_CALORIES(仅当它们都相同时),我希望它是独一无二的。如果我无法理解我想要完成的任务,我会更新我的问题。
// TABLE CREATION STATEMENT
private static final String CREATE_TABLE = "create table " + TABLE_MEMBER
+ "(" + MEMBER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ MEMBER_NAME + " TEXT NOT NULL UNIQUE," + KEY_CALORIES
+ " INT NOT NULL UNIQUE);";
答案 0 :(得分:1)
使用UNIQUE(MEMBER_NAME)
约束意味着您只能插入MEMBER_NAME
一次。您想要的是UNIQUE
和MEMBER_KEY
上的KEY_CALORIES
约束。
您可以使用UNIQUE(MEMBER_KEY,KEY_CALORIES)
作为约束,这意味着它们的组合值应该是唯一的。只要此组合是唯一的,两个列都允许重复。
可能的重复/参考答案: Sqlite table constraint - unique on multiple columns