@estry

Как составить запрос на добавление данных в таблицу или обновление двух и более столбцов?

Есть база данных (PostgreSQL) со столбцами: ID пользователя(автоинкремент), FirstName, LastName, Year, Mounth.
Добавляю данные вот таким запросом:
INSERT INTO info (FirstName, LastName, Year, Mounth) VALUES ('Дима', 'Скрипов', 1990, 10)
Разумеется, если выполнить такой запрос несколько раз, то и записи добавятся несколько раз.

Как построить запрос таким образом чтобы при совпадении FirstName и LastName обновлялись данные в столбцах Year и Mounth?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
create table info (
  ID int generated always as identity, 
  FirstName text, 
  LastName text, 
  Year int2, 
  Mounth int2,
  primary key (FirstName, LastName)
);

INSERT INTO info (FirstName, LastName, Year, Mounth) VALUES ('Дима', 'Скрипов', 1999, 12)
ON CONFLICT (FirstName, LastName) DO UPDATE SET 
	Year = excluded.Year,
	Mounth = excluded.Mounth;


SQL editor online
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
UPDATE info
SET Year=2000, Mounth=1
WHERE FirstName='Дима' AND LastName = 'Скрипов'


Но думаю сам догадываешься, что имя + фамилия не уникальны и всех тёск переиначит
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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