Android 在两列上创建唯一约束(仅当数据库中同时存在这两列时)。如果其中一列不同,我不知道';我不想限制它
在下面的代码片段中,我有两列具有唯一性(MEMBER\u NAME和KEY\u carries)。我只希望它是唯一的,如果两列是相同的。我正在尝试获得唯一的(成员名称、关键热量)或这些行上的东西 我正在努力完成的示例: 也许用户输入了一个成员名称(但该名称已经在databasea中),但是KEY不同,我希望能够将该项添加到SQLite数据库中。如果用户输入一个已经存在的成员名和键(只有当它们都相同时),我希望它是唯一的。如果在理解我试图实现的目标时遇到困难,我将更新我的问题Android 在两列上创建唯一约束(仅当数据库中同时存在这两列时)。如果其中一列不同,我不知道';我不想限制它,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,在下面的代码片段中,我有两列具有唯一性(MEMBER\u NAME和KEY\u carries)。我只希望它是唯一的,如果两列是相同的。我正在尝试获得唯一的(成员名称、关键热量)或这些行上的东西 我正在努力完成的示例: 也许用户输入了一个成员名称(但该名称已经在databasea中),但是KEY不同,我希望能够将该项添加到SQLite数据库中。如果用户输入一个已经存在的成员名和键(只有当它们都相同时),我希望它是唯一的。如果在理解我试图实现的目标时遇到困难,我将更新我的问题 // TAB
// 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\u NAME)
约束意味着您只能插入MEMBER\u NAME
一次。您需要的是对成员密钥
和密钥
的唯一
约束
您可以使用UNIQUE(MEMBER\u KEY,KEY\u carries)
作为约束,这意味着它们的组合值应该是唯一的。只要此组合是唯一的,两列上都允许重复
可能重复/参考答案:
您给定的语句中没有KEY\u NAME字段,它应该是MEMBER\u NAME吗?更正了我的问题,谢谢您能帮我在问题中提供的代码片段中实现这一点吗?我已经试着实现了这一点,但我不能让它毫无错误地工作。我之前提到过这个问题,我理解这一点,但我正在尝试将其实现到我的table语句中,但一直失败。??你能帮我一下吗?