Вы не опубликовали оператор определения таблицы, но, поскольку вы запрашиваете проверку, существует ли userid
, уже перед вставкой новой строки, я предполагаю, что столбец userid
не является UNIQUE
, как следует. Избавьте себя от всех этих проблем и определите их как UNIQUE
, добавив к определению столбца ключевое слово UNIQUE
:
CREATE TABLE table_name(
...,
userid TEXT UNIQUE,
...
);
Теперь вы можете использовать метод insert()
без предварительного проверяя что-либо:
int result = db.insert(TABLE_NAME, null, values);
if (result == -1) {
System.out.println("This exist: "+userid+" "+fullname);
}
Если insert()
возвращает -1
, это означает, что он потерпел неудачу, и вы знаете, что, поскольку нет никаких других ограничений, он не прошел, потому что userid
уже существует. Любое другое значение, возвращаемое insert()
(равно rowid
новой вставленной строки), указывает, что оно выполнено успешно. Если вы решите внести это изменение, вам придется удалить приложение с устройства и запустить его заново, чтобы база данных была создана заново, или обновить версию базы данных.