Eu tenho um json que recebo como um arquivo, carreguei isso no banco de dados Postgres. Aqui estão os dados json:
{
"tablename": "test",
"columns": [
{
"name": "field1",
"datatype": "BigInt"
},
{
"name": "field2",
"datatype": "String"
}
]
}
Agora tenho que criar uma tabela dinamicamente, estou pensando em escrever uma função no Postgres para fazer isso. Então a tabela seria nomeada teste com 2 campos um como string e outro como bigint.
Eu sou capaz de obter o nome da tabela fazendo um select como abaixo:
select (metadata->'tablename') from public.json_metadata;
No entanto, estou tendo dificuldade em obter todos os nomes de colunas aninhadas para formar uma instrução de criação de tabela.
1- Como você faria isso, qualquer função do Postgres embutida para extrair isso.
2- Uma função Postgres é a melhor maneira de abordar este problema, ou devo escrever isso em python (terei que aprender Python) ou script de shell.
O número de colunas não seria fixo, diferentes arquivos json terão um número diferente de colunas.