SQLite: автоинкремент первичных ключевых вопросов
У меня есть следующий запрос SQLite:
CREATE TABLE Logs ( Id integer IDENTITY (1, 1) not null CONSTRAINT PKLogId PRIMARY KEY, ...
-
IDENTITY (1, 1)
→ Что это значит?
-
PKLogId
что это? Кажется, это нигде не определено
- Я хочу
Id
быть integer primary key
с autoincrement
. Я хотел бы иметь возможность вставить в эту таблицу Logs
, опуская столбец Id
в моем запросе. Я хочу, чтобы Id
автоматически добавлялся и увеличивался. Это возможно? Как я могу это сделать?
В тот момент, когда я пытаюсь вставить без Id
, я получаю:
Error while executing query: Logs.Id may not be NULL
Ответы
Ответ 1
Я не уверен, действительно ли вы используете SQLite в соответствии с синтаксисом вашего примера.
Если вас интересует, вы можете быть заинтересованы в SQLite FAQ # 1: Как создать поле AUTOINCREMENT?:
Краткий ответ: столбец, объявленный INTEGER PRIMARY KEY, будет автоинкремент.
Ответ 2
Измените его на:
CREATE TABLE Logs ( Id integer PRIMARY KEY,....
Ответ 3
Если это так, вы можете быть заинтересованы в SQLite FAQ # 1: Как создать поле AUTOINCREMENT?:
Краткий ответ: столбец, объявленный INTEGER PRIMARY KEY, будет автоматически увеличиваться.
Это на самом деле не совсем точно. Integer первичный ключ действительно увеличится, однако, если таблица опустит все строки, она начнется с начала снова. Важно, чтобы вы правильно привязывали все связанные записи, чтобы использовать описание автоинкремента после объявления первичного ключа в целочисленном поле,