[firebase-br] RES: RES: Primary keys não estão NOT NULL

Carlos H. Cantu (TeamFB) listas em warmboot.com.br
Seg Dez 10 18:50:17 -03 2007


O Firebird não vai deixar vc mexer no metadado do banco, a não ser que
vc seja o owner do banco ou o SYSDBA. Espera-se que esses dois
"usuários" saibam o que estão fazendo quando alteram as coisas em
baixo nível.

[]s
Cantu (Membro do TeamFB - FireBase)
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br

DEBW> Eduardo,

DEBW> Eu usei o IBExpert para "desligar" o not null. Consequentemente
DEBW> ele faz um update diretamente no
DEBW> metadado do FireBird.

DEBW> Eu não sei qual sentido da palavra "admitir" você está usando. Mas na minha humilde opinião
DEBW> qualquer banco de dados
DEBW> não deveria permitir alterações direto no metadado, sem um intermediário de consistência.

DEBW> Eu nunca precisei alterar o metadado do Oracle por exemplo, por isso nem sei se é possível
DEBW> alterar.
DEBW> No firebird já é a segunda vez que eu tenho que resolver algum problema mexendo direto no
DEBW> metadado.
DEBW> Não que isso seja um problema pra mim, eu não sou o tipo de
DEBW> programador que quer tudo pronto e
DEBW> também não reclamo do firebird
DEBW> eu acho que ele faz muito bem o que propõem fazer.

DEBW> Agora concordo com você que o banco de dados não tem como
DEBW> prever uma alteração no metadado, isso
DEBW> foi falha minha.

DEBW> []'s
DEBW> -----Mensagem original-----
DEBW> De: lista-bounces em firebase.com.br
DEBW> [mailto:lista-bounces em firebase.com.br] Em nome de Eduardo
DEBW> Jedliczka
DEBW> Enviada em: segunda-feira, 10 de dezembro de 2007 17:14
DEBW> Para: 'FireBase'
DEBW> Assunto: [firebase-br] RES: Primary keys não estão NOT NULL

DEBW> Davi,

DEBW> Qual comando SQL você utilizou para "desligar o NOT NULL" ????

DEBW> Pois, NENHUM banco de dados admite (sem efeitos colaterais) um UPDATE nas
DEBW> tabelas de SISTEMA...

DEBW> Experimente fazer algo semelhante em ORACLE e/ou DB2 (bancos pagos) e veja o
DEBW> resultado...

DEBW> Ou seja, o problema não é o banco de dados, mas sim a diferença de postura
DEBW> dos profissionais diante de um banco pago e/ou free.

DEBW> Atenciosamente
DEBW> _____________________________________________
DEBW> Eduardo Jedliczka - Membro do TeamFB

DEBW> -----Mensagem original-----
DEBW> De: lista-bounces em firebase.com.br
DEBW> [mailto:lista-bounces em firebase.com.br] Em
DEBW> nome de Davi Eduardo Borges Wall
DEBW> Enviada em: segunda-feira, 10 de dezembro de 2007 16:48
DEBW> Para: FireBase
DEBW> Assunto: [firebase-br] Primary keys não estão NOT NULL

DEBW> Olá a todos, hoje estou pedindo ajuda rs...

DEBW> Ocorre que tenho uma base que tem uma característica estranha. 

DEBW> Tenho 1181 tabelas nessa base, quase todas contém primary key. Essas tabelas
DEBW> que contém PK, 
DEBW> o campo PK não está como not null em RDB$fields, o que é muito estranho.

DEBW> Efetuando alguns testes, descobri que quando executado este comando  create
DEBW> table teste (num integer primary key)
DEBW> o campo PK automaticamente é configurado como NOT NULL. Então em tese não há
DEBW> como existir uma primary key não sendo not null.

DEBW> Ainda em meus testes, se eu criar uma tabela com um campo PK, após a criação
DEBW> da tabela eu consigo "desligar" not null.
DEBW> O que seria um erro. Mas tudo bem eu não exijo muito de um banco Free.

DEBW> Bom a situação que tenho é esta acima. Não sei como aconteceu, mas a maioria
DEBW> das tabelas com PK estão com o campo PK como não not null.

DEBW> Em RDB$Fields eu não encontrei (aparentemente) nenhum flag que indiquei que
DEBW> o campo é um PK.
DEBW> O que eu estou pensando em fazer é descobrir o nome do campo da PK e fazer
DEBW> um update direto nos RDB$'s para força-los
DEBW> novamente para not null.

DEBW> Até pesquisei alguma coisa no Google groups mas não achei muita coisa
DEBW> interessante.
DEBW> Não precisam me dizer como fazer mas se me disserem qual tabela contém essa
DEBW> informação já seria de grande ajuda.

DEBW> Obrigado!

DEBW> []'s
DEBW> Davi.

DEBW> ______________________________________________
DEBW> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
DEBW> Para editar sua configuração na lista, use o endereço
DEBW> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
DEBW> Para consultar mensagens antigas: http://firebase.com.br/pesquisa


DEBW> ______________________________________________
DEBW> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
DEBW> Para editar sua configuração na lista, use o endereço
DEBW> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
DEBW> Para consultar mensagens antigas: http://firebase.com.br/pesquisa

DEBW> ______________________________________________
DEBW> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
DEBW> Para editar sua configuração na lista, use o endereço
DEBW> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
DEBW> Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista