0
0 комментариев

Есть данные вида:
ID, Name

Для поля ID в mysql (через phpmyadmin) добавил параметр «уникального» значения, то есть дубликатов в этой таблице быть не может. В итоге при попытке загрузить данные повторно, выдает ошибку:

mysql.connector.errors.IntegrityError: 1062 (23000): Duplicate entry '1234567' for key 'ID'

Но цель моя была несколько иной — предотвратить при повторной загрузке данных, создание дубликатов, то-есть я думал что ID сохранится, а его значение «Название» — обновиться. На данный момент решил «очищать (TRUNCATE)» полностью таблицу — но это кажется слишком грубым решением.

Запрос на запись данных выглядит так:

query=("INSERT INTO tablename(ID, name) VALUES (%s, %s)")

Борюсь с ошибкой:

try:
    cursor.execute(query, values)
except mysql.connector.errors.IntegrityError:
    cursor.execute("TRUNCATE TABLE  tablename")
    cursor.execute(query, values)

Вопрос: как «перезаписывать» обновленные данные, для ID?


Добавить комментарий