Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在两列上创建唯一约束(仅当数据库中同时存在这两列时)。如果其中一列不同,我不知道';我不想限制它_Android_Sqlite_Android Sqlite - Fatal编程技术网

Android 在两列上创建唯一约束(仅当数据库中同时存在这两列时)。如果其中一列不同,我不知道';我不想限制它

Android 在两列上创建唯一约束(仅当数据库中同时存在这两列时)。如果其中一列不同,我不知道';我不想限制它,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,在下面的代码片段中,我有两列具有唯一性(MEMBER\u NAME和KEY\u carries)。我只希望它是唯一的,如果两列是相同的。我正在尝试获得唯一的(成员名称、关键热量)或这些行上的东西 我正在努力完成的示例: 也许用户输入了一个成员名称(但该名称已经在databasea中),但是KEY不同,我希望能够将该项添加到SQLite数据库中。如果用户输入一个已经存在的成员名和键(只有当它们都相同时),我希望它是唯一的。如果在理解我试图实现的目标时遇到困难,我将更新我的问题 // TAB

在下面的代码片段中,我有两列具有唯一性(MEMBER\u NAME和KEY\u carries)。我只希望它是唯一的,如果两列是相同的。我正在尝试获得唯一的(成员名称、关键热量)或这些行上的东西

我正在努力完成的示例: 也许用户输入了一个成员名称(但该名称已经在databasea中),但是KEY不同,我希望能够将该项添加到SQLite数据库中。如果用户输入一个已经存在的成员名和键(只有当它们都相同时),我希望它是唯一的。如果在理解我试图实现的目标时遇到困难,我将更新我的问题

    // 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语句中,但一直失败。??你能帮我一下吗?