[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