@rsytrade

Как заменить/обновить данные в sqlite (Python)?

Вставляю в базу (sqlite) некую строку (колонки - link, title, data, text), при этом у меня должен быть мастер-кей link, и данные (title, data, text) если данные изменены, то ключ link должен остаться тот же, а данные обновиться. Есть такая конструкция, но она создает дубликаты (один и тот же url с разными title, data, text), как избежать дубли (вроде же INSERT OR REPLACE использую)?
cur.execute("""
                    INSERT OR REPLACE INTO persons (link, title, data, text) VALUES (?, ?, ?, ?)
                """,
                         (
                             item['link'],
                             item['title'],
                             item['data'],
                             item['text'],
                         ))
        self.con.commit()
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Во-первых, следует различать сценарий "я знаю, что строка есть, её надо обновить" (UPDATE) и "строки может не быть, если так, её надо создать" (INSERT OR REPLACE или INSERT ON CONFLICT UPDATE). Уточни, какой у тебя.

Во-вторых, приведи код создания таблицы. У тебя link - первичный ключ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы