У меня есть база данных, структурированная так.
CREATE TABLE "work_order" ( "id" INTEGER, "ServiceTitle" TEXT UNIQUE,
"Link" TEXT UNIQUE, "Status" TEXT, PRIMARY KEY("id") );
Когда я пытаюсь ввести некоторые значения, я получаю сообщение об ошибке.
"sqlite3.IntegrityError: UNIQUE constraint failed: work_order.Link"
Затем программа завершается.
Process finished with exit code 1
Даже если значение, введенное мной в столбец «Ссылка», является уникальным.
conn = sqlite3.connect('WO.db', timeout=10)
c = conn.cursor()
c.execute("insert into work_order (ServiceTitle, Link, Status) values
(?,?,?)", ('oo', 'll', 'rr'))
conn.commit()
conn.close()
Новая запись все еще вставляется в базу данных именно так, как я хотел. Я просто получаю эту ошибку на pycharm.
Я также попытался вставить идентификатор первичного ключа. Это не автоматическое увеличение, поэтому я могу ввести его вручную, если оно уникально.
conn = sqlite3.connect('WO.db', timeout=10)
c = conn.cursor()
c.execute("insert into work_order (id, ServiceTitle, Link, Status) values
(?,?,?,?)", (7, 'kkkk', 'eeeee', 'qqqqq'))
conn.commit()
conn.close()
Снова я получаю ошибку в pycharm, но в этот раз по-другому. Запись все еще вставляется в базу данных снова, хотя именно так, как я хотел. Затем процесс завершается снова.
sqlite3.IntegrityError: UNIQUE constraint failed: work_order.id
Process finished with exit code 1.
Есть ли какие-либо предложения относительно того, почему я получаю эту ошибку, даже если все значения, которые я ввожу в эти столбцы, являются уникальными значениями, которых нет в базе данных?
ОБНОВЛЕНИЕ *** Я создал новую таблицу и удалил уникальные ограничения. Теперь я не получаю ошибки, но записи в таблицу дважды. Вот в чем проблема, когда были уникальные ограничения. Я не знаю, почему там вставляются две записи.