Quando os nomes são criados pelo PostgreSQL. Como em: CONSTRAINT <tabela>_pkey PRIMARY KEY (coluna) CONSTRAINT <tabela>_<coluna>_key UNIQUE (coluna)
Ele consegue copiar igualmente como está a original. Talvez seja este o problema. A chave primaria ele manteve pois terminava com a final "_pkey". Não lembro direito mas acho que na documentação não fala nada. Talvez não seja possível com nomes diferentes como o índice que você mostrou de exemplo. 2010/1/4 Emanuel Araújo <[email protected]>: > 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 > > -- Tarcisio F. Sassara _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
