Я хочу добавить новый элемент (сыр) в таблицу sqlite, но только в том случае, если он не существует. У меня есть только два столбца в таблице: _id (KEY_ROWID_PR) и product_name (KEY_NAME_PR).
Я пытался с этим кодом, но он выдает ошибку:
public void populate_base_lists2(String tablename, String item) {
ourDatabase.execSQL("INSERT INTO " + tablename + " (" + KEY_NAME_PR + ") SELECT * FROM (SELECT " + item + ") WHERE NOT EXISTS (SELECT " + KEY_NAME_PR + " FROM " + tablename + " WHERE " + KEY_NAME_PR + " = " + item + ") LIMIT 1;");
}
03-11 17: 27: 20.972: E / AndroidRuntime (658): вызвано:
android.database.sqlite.SQLiteException: нет такого столбца: сыр:
INSERT INTO PR_Dairy_Products (product_name) SELECT * FROM (SELECT
Сыр) ГДЕ НЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ product_name ОТ PR_Dairy_Products
ГДЕ название продукта = сыр) LIMIT 1;
Код отсюда: MySQL: вставить запись, если ее нет в таблице
нет такого столбца: сыр, хорошо, я изменил эту часть на KEY_NAME_PR, тогда ошибка была такой же, но без такого столбца: product_name. Этот столбец определенно существует.
Более того, мне нужно некоторое объяснение этого кода. У меня есть знания SQL на определенном уровне, но я не могу получить это.
Спасибо