Я считаю, что вы хотите следующее: -
private static final String MAKE_TABLE_NAME_SURNAME = "CREATE TABLE " +
TABLE_DISEASE_SEMPTOM + "(" + KEY_DSID " INTEGER PRIMARY KEY AUTOINCREMENT," +
NAME + " TEXT, " + SURNAME + " TEXT, UNIQUE(" + NAME + "," + SURNAME +")) ";
То есть вы определяете комбинацию столбца имени и столбцов фамилии как ограничение UNIQUE.
Например, рассмотрим: -
DROP TABLE IF EXISTS TABLE_DISEASE_SEMPTOM;
CREATE TABLE IF NOT EXISTS TABLE_DISEASE_SEMPTOM (KEY_DSID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SURNAME TEXT, UNIQUE(NAME,SURNAME));
INSERT INTO TABLE_DISEASE_SEMPTOM (NAME,SURNAME) VALUES('Fred','Bloggs'),('Fred','Smith'),('Mary','Smith'),('Jane','Doe');
INSERT OR IGNORE INTO TABLE_DISEASE_SEMPTOM (NAME,SURNAME) VALUES('Fred','Bloggs'); -- will not be inserted as duplicate
SELECT * FROM TABLE_DISEASE_SEMPTOM;
Первые 4 вставки работают, последняя (сама по себе) игнорируется (так как это дубликат).
Таким образом, последний запрос выдает: -
Журнал: -
INSERT INTO TABLE_DISEASE_SEMPTOM (NAME,SURNAME) VALUES('Fred','Bloggs'),('Fred','Smith'),('Mary','Smith'),('Jane','Doe')
> Affected rows: 4
> Time: 0.117s
INSERT OR IGNORE INTO TABLE_DISEASE_SEMPTOM (NAME,SURNAME) VALUES('Fred','Bloggs')
> Affected rows: 0
> Time: 0.117s
т.е. последняя вставленная вставка без строк