Проблема такая, если занесли запись через запрос 'INSERT INTO' в таблицу, и второй раз допустим случайно с таким же названиям, то данные не добавляются и это хорошо, НО сам 'id' увеличивается в значении, каждой раз на одиницю, если совпадают названия , что в моем случаи мне не подходит , возможно ли как-то это решить ?
Параметры таблицы
CREATE TABLE "content" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE,
"title" TEXT NOT NULL,
"category" INTEGER NOT NULL,
"directians" TEXT NOT NULL,
"time" INTEGER,
"img" TEXT,
"autor" TEXT,
"datetime" DATETIME DEFAULT CURRENT_TIMESTAMP,
UNIQUE ("title") ON CONFLICT REPLACE)
Ответ
Если значение ID увеличивается на единицу, то значит что данные, на самом деле, добавляются, а если быть точнее, то вновь добавляемые данные заменяют предыдущие значения. Об этом поведении говорит строка: UNIQUE ("title") ON CONFLICT REPLACE
А для того, чтобы запретить добавление одинаковых данных и соответственно увеличения ID на единицу, нужно просто заменить поведение при конфликтных случаях с этого:
UNIQUE ("title") ON CONFLICT REPLACE
на вот это:
UNIQUE ("title") ON CONFLICT IGNORE
Таким образом, вновь добавляемые данные будут игнорироваться и добавление не сработает.
Комментариев нет:
Отправить комментарий