在两列上创建一个 UNIQUE 约束(仅当数据库中都存在两列时)。如果其中一列不同,我不想限制它



在下面的代码段中,我有两列带有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_KEYKEY_CALORIES上的UNIQUE约束。

可以使用UNIQUE(MEMBER_KEY,KEY_CALORIES)作为约束,这意味着它们的组合值应该是唯一的。两列都允许重复,只要此组合是唯一的。

可能的重复/参考答案:Sqlite表约束-在多列上唯一

最新更新