Как автоматически увеличить первичный ключ? - PullRequest
0 голосов
/ 01 июня 2019

У меня есть этот SQL-запрос для создания моей Penguin таблицы

CREATE TABLE Penguin (
PenguinID INTEGER PRIMARY KEY,
Name VARCHAR(10),
Height FLOAT,
Weight FLOAT)

Но тогда, когда я делаю INSERT INTO Penguin (Name, Height, Weight) VALUES (?,?,?), добавляются только имя, рост и вес, а столбец PenguinID равен NULL.

Ответы [ 2 ]

2 голосов
/ 01 июня 2019

Из-за некоторых странных настроек по умолчанию в SQLite, он делает это автоматически.Вы можете видеть здесь .

. То, что происходит, - то, что у всех таблиц есть столбец rowid, который автоматически увеличивается.Целочисленный первичный ключ автоматически является синонимом rowid, поэтому он увеличивается.Это объясняется в документации .

Не привыкайте к такому поведению, потому что оно свойственно SQLite.Вы можете определить столбец как autoincrement, хотя это добавляет немного накладных расходов.

1 голос
/ 01 июня 2019

просто добавьте AUTOINCREMENT помимо определения столбца в операторе CREATE TABLE как

PenguinID INTEGER PRIMARY KEY AUTOINCREMENT

Демо

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