Ошибка в «Автоинкременте» - PullRequest
19 голосов
/ 28 октября 2010

Я получаю синтаксическую ошибку около AUTOINCREMENT. В чем причина этой ошибки?

CREATE TABLE person (
    id INTEGER NOT NULL AUTOINCREMENT,
    name TEXT NOT NULL
);

CREATE TABLE department (
    id INTEGER NOT NULL AUTOINCREMENT,
    name TEXT NOT NULL,
    FOREIGN KEY (leader) REFERENCES person(id)
);

Ответы [ 3 ]

35 голосов
/ 28 октября 2010

Согласно SQLite FAQ вам нужно объявить столбец INTEGER PRIMARY KEY или INTEGER PRIMARY KEY AUTOINCREMENT, чтобы достичь этого.

4 голосов
/ 09 апреля 2014

В SQLite вам не нужно указывать AUTOINCREMENT, если вы указываете столбец как первичный ключ ...

1 голос
/ 14 марта 2019

SQLite AUTOINCREMENT: вам следует избегать его использования

Всякий раз, когда вы создаете таблицу без указания опции WITHOUT ROWID, вы получаете неявный столбец автоматического приращения, называемый rowid.

Хранилище столбцов rowid 64-битное целое число со знаком, однозначно идентифицирующее строку в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...