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 первичный ключ действительно увеличится, однако, если таблица опустит все строки, она начнется с начала снова. Важно, чтобы вы правильно привязывали все связанные записи, чтобы использовать описание автоинкремента после объявления первичного ключа в целочисленном поле,