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 назначает значение данных по умолчанию для столбца, определение столбца которого находится внутри. Значением является любое выражение без переменных (подзапросы и перекрестные ссылки на другие столбцы в текущей таблице не допускаются).