#database #python-3.x #postgresql #exists #insert-into
#База данных #python-3.x #postgresql #существует #вставить в
Вопрос:
код
cur.execute("insert into employers (id, name ...) values (%s, %s ...)", (7, "Prosenjit Das" ...) WHERE NOT EXISTS (SELECT * FROM employers WHERE VALUES = %s))
conn.commit()
Как проверить здесь значение столбца моего существования, как если бы значения не добавлялись. Например, у меня уже есть id = 7 и имя «prosenjit Das», и если я захочу добавить id = 7 и name = «something», то это не будет добавлено в таблицу. Просто проверьте, является ли идентификатор уникальным. Потому что большую часть времени мне приходится выполняться с одинаковыми значениями.
Я новичок в Postgresql, и мои данные будут вставлены из моего файла python, поэтому я не могу понять, как написать эту логику.
Спасибо.
Ответ №1:
cur.execute(«вставить в employees (id, name …) значения (%s, %s …)», (7, «Prosenjit Das» …) ПРИ КОНФЛИКТЕ (id) ОБНОВИТЕ имя НАБОРА = excluded.name )
Это самый эффективный способ, который я получил, и здесь id должен быть первичным ключом, если нет, вы получите «соответствие уникальному ограничению», что-то вроде этой ошибки.