В настоящее время у меня есть таблица с именем User, которая имеет столбец id, который создается как
'INTEGER PRIMARY KEY'
Предположим, что я создал двух пользователей, поэтому таблица имеет идентификаторы 1 и 2
Если я удалю второго пользователя и создаю третье значение id, мне нужно, чтобы это было 3
Итак, похоже, что Android выбирает следующий доступный идентификатор, как я могу изменить его на более похожий на порядковый номер?
Привет
Сделайте INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
. Здесь документы говорят:
Если столбец имеет тип INTEGER PRIMARY KEY AUTOINCREMENT, тогда... выбран ROWID для новой строки, по крайней мере, один больше, чем самый большой ROWID, который имеет когда-либо существовал в той же таблице.
Поведение, выполняемое ключевым словом AUTOINCREMENT, является тонким отличается от поведения по умолчанию. С помощью AUTOINCREMENT строки с автоматически выбранные ROWID гарантированно имеют ROWID, которые имеют никогда ранее не использовались по одной и той же таблице в той же базе данных. И автоматически генерируемые ROWID гарантируются монотонно увеличение.
AUTOINCREMENT
без PRIMARY KEY
.because Поручаю первичный ключ еще один столбец, я использую _ID INTEGER AUTOINCREMENT NOT NULL
это сделать error.Please помочь мне братан.
SQLite AUTOINCREMENT
- это ключевое слово, используемое для автоматического увеличения значения поля в таблице. Мы можем автоматически увеличивать значение поля, используя ключевое слово AUTOINCREMENT
при создании таблицы с определенным именем столбца для автоматического увеличения его.
Ключевое слово AUTOINCREMENT
может использоваться только с полем INTEGER.
Синтаксис:
Основное использование ключевого слова AUTOINCREMENT
выглядит следующим образом:
CREATE TABLE table_name(
column1 INTEGER AUTOINCREMENT,
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
Пример см. ниже:
Рассмотрим таблицу COMPANY
, которая будет создана следующим образом:
sqlite> CREATE TABLE TB_COMPANY_INFO(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
Теперь вставьте следующие записи в таблицу TB_COMPANY_INFO
:
INSERT INTO TB_COMPANY_INFO (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'MANOJ KUMAR', 40, 'Meerut,UP,INDIA', 200000.00 );
Теперь выберите запись
SELECT *FROM TB_COMPANY_INFO
ID NAME AGE ADDRESS SALARY
1 Manoj Kumar 40 Meerut,UP,INDIA 200000.00
AUTOINCREMENT
в неправильном месте. Спасибо за пример!