Можно ли обновить два столбца, один из которых по значению другого, в одном запросе PostgreSQL?
Позвольте мне объяснить это. Если бы у меня была эта таблица:
CREATE TABLE test
(
id bigint,
val1 integer,
val2 integer
);
и вставьте туда строку:
INSERT INTO test (id, val1, val2) VALUES (1, NULL, NULL);
Тогда мне нужно обновить val1
и val2
столбцы. Для val1
я устанавливаю явное значение, для val2
я использую val1
значение столбца.
UPDATE test
SET
val1 = 1,
val2 = val1
WHERE id = 1
Я ожидаю установить val1
на 1
и val2 на 1
в качестве ссылки просто установить val1
. Однако после этого обновления я получаю 1
в val1
столбце и NULL
в val2
.
Конечно, это не реальный пример из жизни. В моей реальной задаче я установил значение val1
с несколькими условиями, поэтому я не хотел бы снова копировать часть из них в значение val2
.
Возможно ли сделать это так, как я ожидаю в одном запросе