PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Criar aliases em massa?


Você procura por * em esteróide. Infelizmente não existe tal funcionalidade em SQL .

Solução 1:

Use o poder de seleção de blocos em seu editor de texto favorito (vim,atom,...). Coloque cada coluna em uma nova linha. Seleção de bloco para escrever AS e prefixo da tabela. Em seguida, bloqueie a seleção e copie os nomes das colunas.

Solução 2:

Gere uma lista de seleção usando INFORMATION_SCHEMA.COLUMNS :
SELECT 
 string_agg(FORMAT('%s.%s AS %s_%s', "table_name",
                   column_name,"table_name", column_name), ', ')
FROM information_schema.columns
WHERE "table_name" IN ('products', 'taxes', 'categories');

SqlFiddleDemo

Você pode usar E',\n' para colocar cada coluna em uma nova linha.

Resultado:
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║                                                                                   string_agg                                                                                   ║
╠════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╣
║ products.id AS products_id, products.name AS products_name, taxes.id AS taxes_id, taxes.name AS taxes_name, categories.id AS categories_id, categories.name AS categories_name ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝