输入验证,我如何输入唯一名称

时间:2017-08-25 06:11:43

标签: android sqlite

我编写了一个qr阅读器系统,有一部分我想纠正。

ContentValues values = new ContentValues(); values.put(BeneficiaryContract.BeneficiaryEntry._ID, beneficiary.getId()); values.put(BeneficiaryContract.BeneficiaryEntry.COLUMN_BENEFICIARY_NAME, beneficiary.getName()); values.put(BeneficiaryContract.BeneficiaryEntry.COLUMN_BENEFICIARY_EMAIL, beneficiary.getEmail()); values.put(BeneficiaryContract.BeneficiaryEntry.COLUMN_BENEFICIARY_DATE, beneficiary.getDate()); values.put(BeneficiaryContract.BeneficiaryEntry.COLUMN_BENEFICIARY_ADDRESS, beneficiary.getAddress()); values.put(BeneficiaryContract.BeneficiaryEntry.COLUMN_BENEFICIARY_COUNTRY, beneficiary.getCountry());

这是我的插入代码。但我希望不要插入相同的名称。我必须阻止插入两个相同的名字。

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

强制使用唯一受益人名称的一种方法是向表格中的相应列添加唯一约束。然后,任何添加重复受益人名称的尝试都将在数据库级别失败,从而导致Java代码中的异常,您可以捕获并正确处理。遗憾的是,您无法为已存在的表添加唯一约束,因此您必须使用唯一约束重新创建受益人表。在任何情况下,以下CREATE TABLE语句都可以帮助您了解如何继续:

CREATE TABLE BeneficiaryContract (
    BENEFICIARY_NAME     VARCHAR NOT NULL,
    BENEFICIARY_EMAIL    VARCHAR NOT NULL,
    BENEFICIARY_DATE     VARCHAR NOT NULL,
    BENEFICIARY_ADDRESS  VARCHAR NOT NULL,
    BENEFICIARY_COUNTRY  VARCHAR NOT NULL,
    CONSTRAINT beneficiary_name_unique UNIQUE (BENEFICIARY_NAME)
);