[firebase-br] RENOMEAR TABELA (Tabelas de Sistema)
Denis da Silva Guerra
listas.denisguerra em gmail.com
Seg Abr 5 13:37:32 -03 2010
Boa tarde, pessoal
Preciso renomear uma tabela com muuuitos dados.
Sei que a maneira indicada será:
Criar uma nova tabela com o nome desejado;
Passar todos os registros da tabela antiga para a tabela nova;
Deletar a tabela antiga.
Porém, percebi que existe a possibilidade em renomear a tabela utilizando as
tabelas de sistema assim:
-- A Tabela em si
UPDATE RDB$RELATIONS
SET RDB$RELATION_NAME=:NOVO_NOME,
RDB$SECURITY_CLASS='SQL$'||:NOVO_NOME
where
RDB$RELATION_NAME=:NOME_ANTIGO;
-- Os seus Campos
UPDATE RDB$RELATION_FIELDS
SET RDB$RELATION_NAME=:NOVO_NOME
where
RDB$RELATION_NAME=:NOME_ANTIGO and
RDB$SYSTEM_FLAG=0;
-- Suas Triggers
UPDATE RDB$TRIGGERS
SET RDB$RELATION_NAME=:NOVO_NOME
where
RDB$RELATION_NAME=:NOME_ANTIGO;
-- Suas Views
UPDATE RDB$VIEW_RELATIONS
SET RDB$RELATION_NAME=:NOVO_NOME
where
RDB$RELATION_NAME=:NOME_ANTIGO
Só não consegui realizar essas alterações nas tabelas: RDB$INDICES,
RDB$RELATION_CONSTRAINTS e RDB$USER_PRIVILEGES.
Dessa forma, só seria necessário simplesmente recriar as chaves PK, FK, os
índices e os privilégios de usuários.
Mas alterar tabelas de sistema dá um pouco de medo...
Este é um procedimento realmente seguro?
Ou posso ter algum problema em se fazer isso?
Abraços
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
Denis da Silva Guerra
denisdsguerra em gmail.com
São José do Vale do Rio Preto - RJ
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
Mais detalhes sobre a lista de discussão lista