2017-08-25 40 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