Как получить идентификатор от следующего вставленного элемента до его создания? - PullRequest
0 голосов
/ 15 апреля 2020

Мне нужно получить идентификатор будущей вставки элемента в мою таблицу. У меня есть идентификатор автоинкремента.

await db.execute('CREATE TABLE Product(Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT)');

Представьте, что это моя таблица со значениями:

Id   Name
1    something
2    something2

Если я удаляю все элементы и вставляю другой элемент, это выглядит так:

Id   Name
3    something3

Если я снова удалю эту строку, можно ли узнать значение будущего идентификатора? Мне нужно получить будущее значение id, прежде чем создавать новый продукт.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2020

Я не знаю, что вы хотите сделать, но вот как вы можете получить текущий идентификатор.

select * from sqlite_sequence;

Он вернет все столбцы с автоматически увеличенным идентификатором. sqlite_sequence - это таблица, в которой сохраняются имя столбца и текущий идентификатор. Таким образом, вам нужно отфильтровать нужный столбец и увеличить идентификатор на единицу самостоятельно.

Если у вас есть только таблица Product и последний добавленный объект был с идентификатором 3:

select * from sqlite_sequence where name="Product"

Возвращает следующее:

name     seq
Product  3
0 голосов
/ 15 апреля 2020

Вы можете использовать sqlite_sequence:

select *
from sqlite_sequence;

Здесь - это дБ <> скрипка.

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