2017-08-25 57 views
0

我已经编码了一个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

我想插入独特的名称到SQL中。我想了解我该怎么做? – cugurel

+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) 
); 
+0

谢谢你,先生。 :) – cugurel

+0

我在试着去做先生。我希望它完成了。 :)我有想到我upvoted它。 – cugurel

+0

完成它。 :) – cugurel