Главная » Ошибки » StackOverGo — невозможно вставить в SQLite, код ошибки: 19

StackOverGo — невозможно вставить в SQLite, код ошибки: 19

5 ответы

11

ограничение не удалось

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

ответ дан 05 авг.

Pentium10

Я обновил первый вопрос. Вы видите что-то не так в моем sql? Я не могу! — Кароли

Похоже, вы не привязываете значение contentvalues ​​к первичному ключу. И это не удается, поскольку при создании таблицы отсутствует директива автоинкремента, это будет примерно так: ‘_id’ integer PRIMARY KEY AUTOINCREMENT NOT NULL — Pentium10

Но это касается другого столбца — table_LocalSettings_Unit. Я не вижу, чтобы вы вставляли значение для столбца table_LocalSettings_ID. Добавьте эту директиву автоинкремента к созданию вашей таблицы, и, вероятно, она начнет работать. Megertetted hogy miert tortenik igy? — Pentium10

к сожалению, не работает. В официальной документации sqlite сказано: «INTEGER PRIMARY KEY» также включает ключевое слово AUTOINCREMENT. Так что добавлять его не нужно 🙁 — Кароли

Снимите стол с устройства, проверьте его в движке SQLite и посмотрите, работает ли он. Я все еще верю, что ваш автоинкремент сломан. — Pentium10

4

У меня была та же проблема, и ответ 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);»;

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

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

ответ дан 07 окт ’10, 14:10

Opy

3

Вы можете удалить 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» + «);»

Создан 08 июн.

wangjian_neo

Ничего нет wrong с NOT NULL использовался. В нем говорится, что значение не может быть нулевым. — Hobbyist

2

Вы можете увидеть список всех кодов ошибок 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

ответ дан 02 мая ’11, 04:05

cyber-monk

0

У меня недавно была такая же проблема, пока я был уверен, что вставляю правильные данные. Оказалось, что у меня были определены некоторые триггеры, и я забыл их изменить, когда менял таблицу. И в моем случае это был неправильный тип поля, а не ограничение «уникальность» или «ненулевое значение».

Итак, если у вас есть эта проблема и вы не видите никаких нарушений ограничений, проверьте свои триггеры, если они у вас есть.

Создан 17 янв.

algrid

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

android
sqlite
insert

or задайте свой вопрос.

ADV

Связанные вопросы

153

SQLite в Android Как обновить определенную строку

706

Каковы лучшие практики для SQLite на Android?

1933

Ошибка «Срок действия сертификата отладки истек» в подключаемых модулях Eclipse для Android

3096

Повышение производительности SQLite с добавлением INSERT в секунду

957

Как мне проверить в SQLite, существует ли таблица?

865

«ВСТАВИТЬ ИГНОРИРОВАТЬ» против «ВСТАВИТЬ… ПРИ ДВОЙНОМ ОБНОВЛЕНИИ КЛЮЧА»

563

SQLite — UPSERT * не * INSERT или REPLACE

1249

Как вывести список таблиц в файле базы данных SQLite, который был открыт с помощью ATTACH?

How to add a foreign key in SQLite

To create a table, customer_details run the following command:

CREATETABLE customer_details( Customer_id INTEGERPRIMARYKEY, Customer_name TEXT NOTNULL, Shipment_id INTEGERNOTNULL,FOREIGNKEY(Shipment_id)REFERENCES shipment_details(Shipment_id));


In the above command, we have mentioned the foreign key and primary key and also refer to the table where the foreign key will be available. After the creation of the customer_details table, we will create the shipment_details table as:

CREATETABLE shipment_details (Shipment_id INTEGERPRIMARYKEY,STATUS TEXT, City_from TEXT, City_to TEXT);


Now to insert values in the customer_details table, use the following command:

INSERTINTO customer_details(Customer_id, Customer_name, Shipment_id)VALUES(1,’John’,5612),(2,’Paul’,3467);


We can see that it generated the error of “Error: FOREIGN KEY constraint failed”, this error is generated because we were referring to the Shipment_id of table, shipment_details, which has no value yet. So, to remove this error, first, we have to edit the data in shipment_details, that we are referring to the foreign key. To insert data in the shipment_details table, run the following command:

INSERTINTO shipment_details(Shipment_id,STATUS, City_from, City_to)VALUES(5612,’delivered’,’London’,’Manchester’),(3467,’In_process’,’Bristol’,’Cardiff’);


To display the table, shipment_details, run the command:

SELECT*FROM shipment_details;


Now, again run the command to insert values in customer_details using the statement:

INSERTINTO customer_details(Customer_id, Customer_name, Shipment_id)VALUES(1,’John’,5612),(2,’Paul’,3467);


The command has successfully executed without generating the “Foreign key constraint failed” error. To display the table, run the command:

SELECT*FROM customer_details;


Как сделать так, чтобы сериализатор выводил вложенные модели?

  • 1 подписчик
  • 30 сент.
  • 50 просмотров

ответов
0

  • django-rest-framework
    • Django Rest Framework

    Простой

  • How to enable/disable foreign keys in SQLite

    To enable the foreign keys in SQLite, run the following:

    PRAGMA foreign_keys =ON;


    We can disable the foreign keys, by just typing OFF instead of ON in the above command. To confirm that foreign keys are enabled, run the PRAGMA command:

    PRAGMA foreign_keys;


    The output shows 1, which means the foreign keys are being enabled.

    What are the foreign key constraints actions

    There are some actions that you can perform on the parent key as a result of which the child key responds. The general syntax is:

    FOREIGNKEY(foreign_key_column)
       REFERENCES parent_table(parent_key_column)
          ONUPDATE  
          ONDELETE ;

    An explanation to this syntax is:

    • Write the clause of FOREIGN KEY and replace the “foreign_key_column” with the name of your foreign key
    • Replace the “parent_table” with the name of the parent table and also “parent_key_columns” with the parent key name
    • Write the clause “ON UPDATE” and “ON DELETE”, and replace the “” with the action you want to perform

    SQLite supports the actions which are explained in the table:

    ActionDescription
    NullWhen the parent key is deleted, the child key column set to null values
    Set defaultIt works the same as the Null action, but instead of setting null values to the child key column, it set a default value
    No actionWhen changes are made in the parent key of the parent database, no changes are taken place in the child key
    RestrictIt does not allow the user to add or delete the values from a parent key
    CascadeIt passes on the changes which are made in a parent table to the child table

    Как сделать ссылку на изображение в Django Rest Framework?

    • 1 подписчик
    • 19 сент.
    • 61 просмотр

    ответ
    1

  • django
    • Django

    • +1 ещё

    Простой

  • What is the general syntax of using foreign key

    The general syntax of using a foreign key to create a table is:

    CREATETABLETABLE_NAME
    (
      column1 datatype [NULL|NOTNULL]PRIMARYKEY,
      column2 datatype [NULL|NOTNULL]FOREIGNKEY,
      …
        FOREIGNKEY(column1, column2,…))
        REFERENCES parent_table (column1, column2 …)
    );

    The explanation of it is:

    • Use the clause “CREATE TABLE” for the creation of a table
    • Replace table_name with the name of the table
    • Define the columns with their data types, and also define whether the support NULL/NOT NULL values
    • Also mentions the columns that hold PRIMARY key and the Foreign key
    • Use the statement FOREIGN KEY and mention in () the column names which are foreign keys
    • Use the clause REFERENCE and replace the parent_table with the name of parent table and mention its foreign keys

    Почему данные сериализуются значениями null?

    • 1 подписчик
    • вчера
    • 17 просмотров

    ответ
    1

  • django-rest-framework
    • Django Rest Framework

    Простой

  • Как сериализовать наследуемые модели?

    • 1 подписчик
    • 19 сент.
    • 24 просмотра

    ответов
    0

  • django
    • Django

    • +1 ещё

    Простой

  • Как переименовать кастомное поле DRF в зависимости от значения?

    • 1 подписчик
    • 11 окт.
    • 28 просмотров

    ответов
    0

  • django
    • Django

    • +1 ещё

    Средний

  • Как связать пользователя с кастомной моделью в Django REST Framework?

    • 1 подписчик
    • 11 окт.
    • 48 просмотров

    ответов
    0

  • django-rest-framework
    • Django Rest Framework

    Простой

  • Как правильно написать created во вложенных сериализаторах?

    • 1 подписчик
    • 23 часа назад
    • 12 просмотров

    ответов
    0

  • django-rest-framework
    • Django Rest Framework

    Простой

  • How does a foreign key works in SQLite

    To understand the working of foreign keys let us consider an example of a courier service and create two tables, customer_details, and shipment_details which are having the following data:

    Customer_idCustomer_nameShipment_id

    customer_details

    1John5612
    2Paul3467
    Shipment_idStatusFrom (City)To (City)

    shipment_details

    5612DeliveredLondonManchester
    3467In processBristolCardiff

    In the table, customer_details, Customer_id is the primary key and Shipment_id is a foreign key. And in the table, shipment_details, shipment_id is a primary key.

    Куда правильно прописывать проверки?

    • 1 подписчик
    • вчера
    • 32 просмотра

    ответ
    1

  • django-rest-framework
    • Django Rest Framework

    Простой

  • SQLite Primary key constraint

    The PRIMARY KEY constraint uniquely identifies each record in a
    database table. There can be more UNIQUE columns, but only one primary
    key in a table. Primary keys are important when designing database tables.
    Primary keys are unique IDs. We use them to refer to table rows. Primary keys
    become foreign keys in other tables when creating relations among
    tables. Due to to a ‘long-standing coding oversight’, primary keys can be
    NULL in SQLite. This is not the case with other databases.

    sqlite> DROP TABLE Brands;
    sqlite> CREATE TABLE Brands(Id INTEGER PRIMARY KEY, BrandName TEXT);

    The Id column of the Brands table becomes a
    PRIMARY KEY.

    sqlite> INSERT INTO Brands(BrandName) VALUES(‘Coca Cola’);
    sqlite> INSERT INTO Brands(BrandName) VALUES(‘Pepsi’);
    sqlite> INSERT INTO Brands(BrandName) VALUES(‘Sun’);
    sqlite> INSERT INTO Brands(BrandName) VALUES(‘Oracle’);
    sqlite> SELECT * FROM Brands;
    Id BrandName
    ———- ———-
    1 Coca Cola
    2 Pepsi
    3 Sun
    4 Oracle

    In SQLite if a column is INTEGER and PRIMARY KEY,
    it is also auto-incremented.

    SQLite UNIQUE constraint

    The UNIQUE constraint ensures that all data are unique in a column.

    sqlite> CREATE TABLE Brands(Id INTEGER, BrandName TEXT UNIQUE);

    Here we create a table Brands. The BrandName column is
    set to be UNIQUE. There cannot be two brands with a same name.

    sqlite> INSERT INTO Brands VALUES(1, ‘Coca Cola’);
    sqlite> INSERT INTO Brands VALUES(2, ‘Pepsi’);
    sqlite> INSERT INTO Brands VALUES(3, ‘Pepsi’);
    Error: column BrandName is not unique

    We get an error ‘column BrandName is not unique’. There can only be one Pepsi brand.

    Note that a PRIMARY KEY constraint automatically has a
    UNIQUE constraint defined on it.

    Как правильно писать декораторы для Django DRF?

    • 1 подписчик
    • 17 сент.
    • 53 просмотра

    ответа
    2

  • django
    • Django

    • +1 ещё

    Простой

  • How to check the status of the Foreign key in SQLite

    SQLite begin supporting the feature of a foreign key after the release of its version 3.6.19, so to check whether the installed version of SQLite supports the foreign key or not, execute the following command in the SQLite environment:

    PRAGMA foreign_keys;


    The output can either be “0” or “1” and if it doesn’t display any output then it means it does not support the foreign keys.

    OutputResult
    0The foreign keys are disabled
    1The foreign keys are enabled

    Как отправить на фронтенд url картинки заглушки, если поле ImageField пустое?

    • 1 подписчик
    • 14 сент.
    • 40 просмотров

    ответа
    2

  • Показать ещёЗагружается…
  • Вакансии с Хабр Карьеры

    Backend-разработчик Django DRF Python

    Пульсар-МСК
    •Москва
    от 100 000 до 200 000 ₽

    Django Fullstack Developer (удалённо)

    DropsTab LTD

    от 150 000 до 200 000 ₽

    Python разработчик

    Сбер
    •Иннополис
    от 80 000 ₽
    Ещё вакансии

    Заказы с Хабр Фриланса

    Копирайтинг

    23 окт. 2022, в 15:35
    4000 руб./за проект

    Таргетолог Вконтакте

    23 окт. 2022, в 15:27
    10000 руб./за проект

    Написать программу на С#

    23 окт. 2022, в 15:11
    4000 руб./за проект
    Ещё заказы

    Минуточку внимания

    Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями

    Зарегистрироваться

    Самое интересное за 24 часа

    • Сущиствует ли GUI фреймворк под windows для rust?

      • 2 подписчика
      • 1 ответ
    • Как выбрать из элемента из списка по его вероятности?

      • 2 подписчика
      • 1 ответ
    • Как получить иностранный номер телефона?

      • 4 подписчика
      • 0 ответов
    • Как удалить вирус, который меняет фон рабочего стола?

      • 4 подписчика
      • 2 ответа
    • Ассемблер в VSCode?

      • 3 подписчика
      • 1 ответ
    • Api через POST запросы?

      • 3 подписчика
      • 2 ответа
    • Проблема с установкой windows что делать?

      • 2 подписчика
      • 1 ответ
    • Как сделать чтобы из моего пакета импортировалось только то, что нужно?

      • 2 подписчика
      • 0 ответов
    • Как сделать рекурсивные списки Visual Prolog?

      • 2 подписчика
      • 0 ответов
    • Безопасен ли зараженный отключенный SSD диск?

      • 2 подписчика
      • 2 ответа
    • © Habr
    • О сервисе
    • Обратная связь
    • Блог
    Источники

    • https://stackovergo.com/ru/q/764316/unable-to-insert-in-sqlite-error-code19
    • https://linuxhint.com/sqlite-foreign-keys/
    • https://qna.habr.com/q/818735
    • https://zetcode.com/db/sqlite/constraints/
    [свернуть]
    Решите Вашу проблему!


    ×
    Adblock
    detector