Добавление строки в таблицу — ошибка первичного ключа/автоматического увеличения (System.Data.SQLite)

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

Я вставляю новый со следующим утверждением:

ВСТАВИТЬ В ЗНАЧЕНИЯ производителя ("Test1", "Test2", "01332232321")

Но мне дано следующее исключение:

"Ошибка SQLite\r\nТаблица производителя имеет 4 столбца, но было предоставлено 3 значения"

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

Как мне это исправить? Является ли это простой синтаксической ошибкой или мне нужно полностью переосмыслить свой подход?


person Jamie Keeling    schedule 30.03.2011    source источник


Ответы (2)


Вы должны указать столбцы:

INSERT INTO Manufacturer (col2, col3, col4) VALUES ('Test1','Test2','01332232321')

или передать значение NULL для столбца первичного ключа.

person HABJAN    schedule 30.03.2011
comment
Спасибо, я никогда не понимал, что вам нужно указывать столбцы. Я работал с sqlcommands.net/sql+insert и, по-видимому, пропустил очевидную часть: вы разрешено опускать список имен столбцов в предложении SQL INSERT INTO, если вы вводите значения для каждого из столбцов таблицы. - person Jamie Keeling; 31.03.2011

Я думаю, вы ищете, как AUTOINCREMENT в sqllite

также Как создать поле AUTOINCREMENT

person MikeM    schedule 30.03.2011