есть запрос выполняемый через JDBC, например :
INSERT INTO TableName( id, name, phone) VALUES ('1', 'new_name', '12345');
Запись с таким ключом уже существует, и возникает:
duplicate key value violates unique constraint "TableName_pkey"
как сделать полную перезапись всей записи, если запись с таким ключом уже существует?
Думал можно использовать: ON CONFLICT DO UPDATE но в данном случае нужно указывать какие поля нужно обновлять. Но нужно сделать полную перезапись строки.
Если прям SQL, и вот прям не хотим проверять предварительно факт наличия записи (хотим в одном запросе все уместить), то для PostgreSql исользуем такую конструкцию
INSERT INTO TableName( id, name, phone) VALUES ('1', 'new_name', '12345')
ON CONFLICT (id) DO UPDATE SET name = 'new_name', phone = '12345' WHERE id ='1'
Если у вас ивестен первичный ключ, то надо делать обновление, а не вставку. Правильно будет
UPDATE TableName set name='new_name', phone='12345' where id='1';
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости