在下面的代码段中,我有两列带有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);";
使用UNIQUE(MEMBER_NAME)
约束意味着您只能插入一次MEMBER_NAME
。您想要的是MEMBER_KEY
和KEY_CALORIES
上的UNIQUE
约束。
可以使用UNIQUE(MEMBER_KEY,KEY_CALORIES)
作为约束,这意味着它们的组合值应该是唯一的。两列都允许重复,只要此组合是唯一的。
可能的重复/参考答案:Sqlite表约束-在多列上唯一