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

Davi Eduardo Borges Wall davi.wall em mult.com.br
Seg Dez 10 17:26:13 -03 2007


Obrigado Fernando,

Pergunta! Os campos da tabela RDB$RELATION_FIELDS são sempre PK? Ou FK? Ou tem um campo que indica se é PK dentro dessa tabela?

Pergunto isso pois existe a tabela RDB$FIELDS que também contém o campo NULL_FLAG. Qual seria a diferença entre as duas?

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em nome de Fernando Lopes
Enviada em: segunda-feira, 10 de dezembro de 2007 16:57
Para: FireBase
Assunto: Re: [firebase-br]Primary keys não estão NOT NULL

Acho que se você fizer algo do tipo, resolve.

UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = 1 WHERE RDB$FIELD_NAME='CAMPO'
AND RDB$RELATION_NAME='TABELA';

Att.
Fernando
\
Em 10/12/07, Davi Eduardo Borges Wall <davi.wall em mult.com.br> escreveu:
>
> Olá a todos, hoje estou pedindo ajuda rs...
>
> Ocorre que tenho uma base que tem uma característica estranha.
>
> Tenho 1181 tabelas nessa base, quase todas contém primary key. Essas
> tabelas que contém PK,
> o campo PK não está como not null em RDB$fields, o que é muito estranho.
>
> Efetuando alguns testes, descobri que quando executado este
> comando  create table teste (num integer primary key)
> o campo PK automaticamente é configurado como NOT NULL. Então em tese não
> há como existir uma primary key não sendo not null.
> u
> Ainda em meus testes, se eu criar uma tabela com um campo PK, após a
> criação da tabela eu consigo "desligar" not null.
> O que seria um erro. Mas tudo bem eu não exijo muito de um banco Free.
>
> Bom a situação que tenho é esta acima. Não sei como aconteceu, mas a
> maioria das tabelas com PK estão com o campo PK como não not null.
>
> Em RDB$Fields eu não encontrei (aparentemente) nenhum flag que indiquei
> que o campo é um PK.
> O que eu estou pensando em fazer é descobrir o nome do campo da PK e fazer
> um update direto nos RDB$'s para força-los
> novamente para not null.
>
> Até pesquisei alguma coisa no Google groups mas não achei muita coisa
> interessante.
> Não precisam me dizer como fazer mas se me disserem qual tabela contém
> essa informação já seria de grande ajuda.
>
> Obrigado!
>
> []'s
> Davi.
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa




Mais detalhes sobre a lista de discussão lista