Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rpizao

Criando uma constraint de check

Recommended Posts

Falai pessoal,

Eu preciso criar uma constraint em um campo chamado dat_mes_base, apesar do nome ele guarda dia/mês/ano (recebi ordens para que fosse assim...rs) o dia é sempre o dia 01 todo o trabalho é feito em cima de mês/ano, e esse campo faz parte da PK da tabela, ai que está meu problema...

Eu quero restringir para que nenhum "desavisado" crie uma nova chave com mesmo mês/ano mas em dias diferentes...

 

Exemplo:

dat_mes_base cod_filial

01/01/05 1

02/01/05 1 ----> Isso não pode acontecer

 

Alguém pode me dar um luz de como eu crio uma constraint com estas características?

 

Desde já obrigado pessoal... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]'s .... http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Rafael.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falai pessoal,

Eu preciso criar uma constraint em um campo chamado dat_mes_base, apesar do nome ele guarda dia/mês/ano (recebi ordens para que fosse assim...rs) o dia é sempre o dia 01 todo o trabalho é feito em cima de mês/ano, e esse campo faz parte da PK da tabela, ai que está meu problema...

Eu quero restringir para que nenhum "desavisado" crie uma nova chave com mesmo mês/ano mas em dias diferentes...

 

Exemplo:

dat_mes_base cod_filial

01/01/05 1

02/01/05 1 ----> Isso não pode acontecer

 

Alguém pode me dar um luz de como eu crio uma constraint com estas características?

 

Desde já obrigado pessoal...  http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]'s ....  http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Rafael.

<{POST_SNAPBACK}>

Pessoal....

Muito obrigado...

Encontrei uma forma de fazer....se alguém passar pelo mesmo problema, ficai registrado...

 

ALTER TABLE FILIAIS ADD CONSTRAINT FILIAIS_CHK  CHECK( to_char(dat_mes_base, 'DD') = '01' );
Abraços pessoal.... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Rafael.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra solução seria criar uma trigger e formar um trunc nesta data.

 

 

 

create or replcace ....

before insert or update

 

:new.data := Trunc(:new.data,'mm');

 

 

mas eu faria exatamente o que você fez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra solução seria criar uma trigger e formar um trunc nesta data.

 

 

 

create or replcace ....

before insert or update

 

:new.data := Trunc(:new.data,'mm');

 

 

mas eu faria exatamente o que você fez.

<{POST_SNAPBACK}>

Vlw Motta...

Eu estava com essa dúvida na sexta, ai agora pela manhã a voz falo...rs

Eu estou iniciando no Oracle, antes trabalhava com SQL Server....ainda to me adaptando a algumas diferenças, mas to curtindo...

 

Ah...outra dúvida...

 

Tem como renomear constraint e index?

Quando eu crio uma nova tabela o Oracle cria as constraints e os index com um nome locaum....e o pessoal aq cobra muito esse lance de padronização...

 

Abração cara...

Vlw ai pela dica... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Rafael.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que tem um rename , sim , mas sempre faço o método silvicola, drop e create ...

 

sempre crio as constraints em separado do create da tabela, fica mais facil nomeas-las

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que tem um rename , sim , mas sempre faço o método silvicola, drop e create ...

 

sempre crio as constraints em separado do create da tabela, fica mais facil nomeas-las

<{POST_SNAPBACK}>

Ah sim...é o que eu fiz tb cara!!!

mas o problema é que estou mandando todo o script, e dependendo de quem for rodar....queria gerar uma sequencia....tipo o cara rodar o arquivo e já criar td certin.

O lance é que não sei se as constraints q são criadas por default mudam de nome a cada vez q são criadas....assim não poderia prever qual será o nome para poder dropa-la em tempo de execução....

Mas ta trq... http://forum.imasters.com.br/public/style_emoticons/default/yes.gif

Vlw pela ajudar cara....até mas... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Rafael.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.