Pessoal, estou copiando algumas tabelas (varias) de um schema para outro e
preciso que as novas tabelas herdam toda a estrutura das originais, com isso
poderia usar alguns métodos, mas preferi fazer usando LIKE, com isso consigo
copiar toda a estrutura da tabela original para a nova.

Ao fazer notei que alguns indices foram criados com o nome diferente, ou
seja, ele não herdou o nome completo do indice, mesmo em schemas diferentes
ele poderia ter mantido, o que aconteceu com a chave primaria mas não
ocorreu com os demais.

Um exemplo seria:

\d t_cliente
                  Table "public.t_cliente"
     Column     |     Type      |         Modifiers
----------------+---------------+----------------------------
 pkey         | integer       | default 0
 codcliente   | text          | not null
 nome         | text          |
 fantasia     | text          |
 cnpj_cpf     | text          |
 inscricao_rg | text          |
 contato      | text          |
 atividade    | text          |
Indexes:
    "t_cliente_pkey" PRIMARY KEY, btree (s_codcliente), tablespace
"poli_disk1"
   * "t_cliente_u_pkey_idx01" btree (u_pkey), tablespace "poli_disk1"*

faz cópia:
CREATE TABLE backup.t_cliente (LIKE t_cliente INCLUDING DEFAULTS INCLUDING
INDEXES INCLUDING CONSTRAINTS) ;

\d backup.t_cliente
                  Table "backup.t_cliente"
     Column     |     Type      |         Modifiers
----------------+---------------+----------------------------
 pkey         | integer       | default 0
 codcliente   | text          | not null
 nome         | text          |
 fantasia     | text          |
 cnpj_cpf     | text          |
 inscricao_rg | text          |
 contato      | text          |
 s_atividade    | text          |
Indexes:
    "t_cliente_pkey" PRIMARY KEY, btree (s_codcliente), tablespace
"poli_disk1"
   * "t_cliente_u_pkey_key" btree (u_pkey), tablespace "poli_disk1"*

Vejam que ele manteve a chave primaria com o mesmo nome mas o indice ele
mudou.  Tudo bem que no resultado final eu teria o mesmo indice mas a nível
de padronização ficaria diferente.

Existe alguma forma de força a utilização do mesmo dos índices, ou não pode
ser assim?  Por default o Postgres não faz isso.

-- 
Atenciosamente,

Emanuel Araújo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a