sqlite: многоколонный первичный ключ с автоинкрементным столбцом

Я в основном хочу преобразовать таблицу из MySQL в SQLite по следующей схеме:

create table items (
id integer auto_increment,
version integer default 0,
primary key (id, version)
);

По сути, я хочу, чтобы ID автоматически увеличивался всякий раз, когда я вставляю что-либо в таблицу, с VERSION, начинающимся с 0, но все же допускаю несколько элементов с одинаковым идентификатором, если VERSION отличается.

Я пытаюсь повторить это поведение с Sqlite, однако, я не могу заставить работать создание таблиц. Похоже, что вам разрешен только один столбец в качестве автоинкремента, и он должен быть первичным ключом. Если я сделаю ID первичным ключом, я не смогу использовать VERSION как часть ключа. Однако, если я сделаю ключ из нескольких столбцов (ID, VERSION), я не смогу получить идентификатор для автоматического увеличения.

Есть ли обходной путь или, возможно, лучший способ разработки моего стола?

Я думал о следующем решении:

Таблица 1:

create table items {
id integer primary autoincrement,
version integer}

Таблица 2:

create table item_version {
id integer,
version integer,
primary key (id, version)
}

Когда я добавляю новый элемент, я добавляю его к элементам и получаю автоматическое увеличение идентификатора. однако, если у меня когда-либо будет новая версия с тем же идентификатором, я добавлю ее в item_version. в основном я использую item_version для хранения всего, кроме предметов, просто для генерации уникальных идентификаторов.

Ответы на вопрос(2)

Ваш ответ на вопрос