Intereting Posts
Facebook Graph API: получение случайных друзей N? Проблемы с ActionBarSherlock getMenuInflater Как настроить мелодию для отдельного контакта на Android? OpenCV: обнаружение круговых пятен / дисков Dominoes Android – Weird EscapeUtil.unescapeString crash Как найти переопределяемые методы в eclipse Как загрузить несколько файлов с помощью AsyncHttpClient Android Android: поиск вызовов API, требующих разрешения Как избавиться от лишнего промежутка между кнопкой и другими видами? Есть ли способ показать маршруты в Google Map API v2? Как сортировать в алфавитном порядке код в файле XML внутри Intellij IDEA 13 для Android? Отжимать содержимое, кроме некоторого вида, когда отображается клавиатура Не удается сохранить фрагменты в реальном времени с помощью изменения ориентации или сохранения пользовательского интерфейса фрагмента YouTubePlayerSupportFragment в однозависимом приложении с изменением ориентации OpenMP на iOS / Android

Не удалось включить INSERT в SQLite, код ошибки: 19

Когда я пытаюсь запустить следующее:

ContentValues cv = new ContentValues(); cv.put(table_LocalSettings_Unit, input); mDb.insert(table_LocalSettings, "", cv); 

Я получил следующую ошибку:

Блок ввода ошибки = 0;
Ошибка SqliteConstraintException: сбой кода ошибки 19.

В чем проблема? Код таблицы sql:

  "create table if not exists " + table_LocalSettings + "( " + table_LocalSettings_ID + " INTEGER PRIMARY KEY NOT NULL , " + table_LocalSettings_MapType + " INTEGER NOT NULL , " + table_LocalSettings_Visib + " BIT NOT NULL , " + table_LocalSettings_Unit + " INTEGER DEFAULT 0 NOT NULL , " + table_LocalSettings_SpeedUnit + " INTEGER NOT NULL , " + table_LocalSettings_Alert + " BIT NOT NULL ," + table_LocalSettings_UserID + " INTEGER DEFAULT -1 , " + table_LocalSettings_Username + " VARCHAR , " + table_LocalSettings_PowerSave + " VARCHAR , " + table_LocalSettings_PremiumUser + " INTEGER NOT NULL DEFAULT 0);"; 

Ограничение не выполнено

Похоже, что ваш первичный ключ уже существует в таблице

У меня была та же проблема, и ответ Pentium 10 привел меня в правильном направлении. После проверки неправильного кода, который был исправлен, я очистил данные из этого приложения в эмуляторе, и он воссоздал БД, и теперь он отлично работает.

  "create table if not exists " + DATABASE_TABLE + " (" + _ID + " integer primary key autoincrement," + " ItemName text not null, ItemID text not null, Image text not null, ImageDate text not null);"; 

Я думаю, что одна из моих проблем заключалась в том, что у меня была дополнительная колонка. Я удалил один из столбцов раньше и не удалял его из приведенных выше строк.

Главное – триплекс проверить код на ошибки и орфографию, а при использовании эмулятора очистить данные.

Вы можете увидеть список всех кодов ошибок SQLite здесь http://www.sqlite.org/c3ref/c_abort.html . Код ошибки 19 означает, что во время операции было нарушено ограничение таблицы (NOT NULL, UNIQUE и т. Д.) (INSERT и т. Д.). От взгляда на логику создания таблицы многие из ваших полей имеют значение NOT NULL, но вы только пытаетесь вставить один столбец. Если вы создаете таблицу таким образом, чтобы значения не могли быть нулевыми, вы должны включить непустое значение во время INSERT, иначе вы увидите код ошибки 19. Вы также можете удалить ограничение из своей таблицы базы данных, если оно не требуется ,

В качестве побочного примечания существуют другие методы вставки, которые позволяют обрабатывать нарушение ограничений, такое как

 db.insertWithOnConflict(..., ..., ..., INTEGER); 

Где INTEGER является одной из статических переменных разрешения конфликтов в классе SQLiteDatabase (но я не думаю, что любой из них допускает нарушение NOT NULL). Вы также можете узнать больше о вариантах разрешения конфликтов SQLite: http://www.sqlite.org/conflict.html

Вы можете удалить значение not null из таблицы, и оно будет работать нормально. как это:
правильно:

 String callTable = "CREATE TABLE IF NOT EXISTS '%s'" + "(userid VARCHAR, callwith VARCHAR, calltype VARCHAR, callstart time, callend time, callmedia VARCHAR" + ");" 

неправильно:

 String callTable = "CREATE TABLE IF NOT EXISTS '%s'" + "(userid VARCHAR not Null , callwith VARCHAR not null, calltype VARCHAR, callstart time, callend time, callmedia VARCHAR" + ");"