PSQL, как создать столбец, применяя функцию к существующему столбцу

У меня есть существующий столбец геометрии, и я хотел бы создать новый столбец с применением функции к этому существующему столбцу. Как работает синтаксис? Я получил сообщение о том, что на эту часть запроса нельзя ссылаться на существующий столбец. Спасибо

INSERT INTO folder(col1) VALUES (function(col1));

1 ответ

Чтобы создать новый столбец, используйте ADD COLUMN, как здесь:

t=# alter table s95 add column new_col text;
ALTER TABLE

чтобы установить значение путем применения функции к существующему столбцу, используйте update:

t=# update s95 set new_col = concat('0'::text,i::text);
UPDATE 2
t=# select * from s95;
 i |  t   | new_col
---+------+---------
 3 | yoga | 03
 4 | yoga | 04

Если вашей идеей было добавить столбец с базой значений по умолчанию для другого столбца, это не сработает:

Предложение DEFAULT назначает значение данных по умолчанию для столбца, определение столбца которого находится внутри. Значением является любое выражение без переменных (подзапросы и перекрестные ссылки на другие столбцы в текущей таблице не допускаются).

Другие вопросы по тегам