Запрос для вставки данных в таблицу только в некоторые столбцы
Подскажите, в случае если у меня есть таблица из 4 столбцов (допустим, a, b, c, d), причем в столбцах a и b уже есть данные, и я хочу вставить данные только в столбцы c и d, на основе пересечения вставляемых значений в столбце а, как мне это сделать? Мне особо не нравится, как сформулирован вопрос, но по-другому не получается, поэтому я проиллюстрирую:
в таблицу такого вида я хочу добавить значение ccc для столбца c и значение ddd для столбца d
a b c d
aaa bbb null null
таким образом должна получиться таблица:
a b c d
aaa bbb ccc ddd
Написал такой запрос, insert into table(a, c, d) values ('aaa', 'ccc', 'ddd') on conflict(a) do update set c='ccc', d='ddd', но postgres ругается на то, что я не указал столбец b, соответственно он туда пытается вставить null, и получает ошибку из-за ограничения на невозможность вставки null в столбец b.