#postgresql
#postgresql
Вопрос:
Я пытаюсь обновить столбец из столбца типа varchar в JSON, но столбец уже заполнен переменными, как я могу преобразовать их в JSON с дополнительной информацией.
Структура таблицы с данными:
----- --------
| id | value |
----- --------
| 1 | value1 |
| 2 | value2 |
| 3 | value3 |
| 4 | value4 |
| 5 | value5 |
| 6 | value6 |
----- --------*
Ожидаемый результат:
----- ----------------------------------
| id | value |
----- ----------------------------------
| 1 | {"t1": "val", "value": "value1"} |
| 2 | {"t1": "val", "value": "value2"} |
| 3 | {"t1": "val", "value": "value3"} |
| 4 | {"t1": "val", "value": "value4"} |
| 5 | {"t1": "val", "value": "value5"} |
| 6 | {"t1": "val", "value": "value5"} |
----- ----------------------------------*
Пожалуйста, помогите мне разрешить этот запрос
Ответ №1:
При изменении типа столбца вы можете добавить выражение для преобразования данных из старого типа в новый. Для этого необходимо добавить USING
предложение:
ALTER TABLE mytable
ALTER COLUMN "value" TYPE json USING json_build_object('t1', 'val', 'value', "value");
В этом случае используйте json_build_object()
функцию для создания ожидаемого объекта JSON, включая. старое значение