Ваша проблема в том, что ни один из вставляемых столбцов не имеет УНИКАЛЬНОГО ограничения.
Я полагаю, что вы хотите использовать следующую таблицу для создания таблицы: -
create table if not exists _ottsubt(id INTEGER PRIMARY KEY, ott_param_type int, ott_param_id int UNIQUE, ott_param_value int, ott_param_name char (128));
Тогда сработает вышеуказанное.
Рабочий пример: -
drop table if exists _ottsubt;
create table if not exists _ottsubt(id INTEGER PRIMARY KEY AUTOINCREMENT, ott_param_type int, ott_param_id int UNIQUE, ott_param_value int, ott_param_name char (128));
insert or replace into _ottsubt ( ott_param_type, ott_param_id, ott_param_value, ott_param_name ) values ( 0, 9291, 8190, 'Movie 1' );
insert or replace into _ottsubt ( ott_param_type, ott_param_id, ott_param_value, ott_param_name ) values ( 0, 9291, 260, 'Movie 1' );
SELECT * FROM _ottsubt;
Результат: -

В качестве альтернативы вы можете удалить столбец id и вместо него сделать ott_parm_id col ПЕРВИЧНЫЙ КЛЮЧ, используя (и псевдоним rowid ): -
create table if not exists _ottsubt(ott_param_type int, ott_param_id int INTEGER PRIMARY KEY, ott_param_value int, ott_param_name char (128));
- Примечание AUTOINCREMENT был удален, он, вероятно, не требуется ион неэффективен в соответствии с автоинкрементом SQLite , который включает в себя: -
Ключевое слово AUTOINCREMENT накладывает дополнительные ресурсы ЦП, памяти, дискового пространства и дискового ввода-вывода и должно бытьизбегать, если не строго необходимо.Обычно это не нужно.