Fórum Procedure ou Trigger? #31082
21/08/2007
0
Procedure ou Trigger - Preciso de Ajuda!
Pessoal, sou novo em no que diz respeito a Banco de dados...
Acho que voces podem me ajudar com facilidade.
Tenho uma Tabela que se Chama: TB_PESSOA_FISICA
Nela contem ´N´ campos... como ´Nome´, ´Fone´, etc...
A chave primária desta tabela é um campo que se chama RU.
Este campo deve ter a seguinte caracteristica: Ele tem que se AUTO INCREMENTAVEL, porem tem que ser em EXADECIMAL... e nao em DACIMAL NORMAL... o problema maior é que essa tabela terá mais de 180 milhoes de registros... se nao me engano...o ´INT´ vai até 255 caracteres né? Pensei em fazer esse campo com um VARCHAR e uma Procedure para fazer o Auto Incremente convertendo numerico em exadecimal...
Mas como se faz isso???
Ajudem-me...
Pessoal, sou novo em no que diz respeito a Banco de dados...
Acho que voces podem me ajudar com facilidade.
Tenho uma Tabela que se Chama: TB_PESSOA_FISICA
Nela contem ´N´ campos... como ´Nome´, ´Fone´, etc...
A chave primária desta tabela é um campo que se chama RU.
Este campo deve ter a seguinte caracteristica: Ele tem que se AUTO INCREMENTAVEL, porem tem que ser em EXADECIMAL... e nao em DACIMAL NORMAL... o problema maior é que essa tabela terá mais de 180 milhoes de registros... se nao me engano...o ´INT´ vai até 255 caracteres né? Pensei em fazer esse campo com um VARCHAR e uma Procedure para fazer o Auto Incremente convertendo numerico em exadecimal...
Mas como se faz isso???
Ajudem-me...
Duzao®
Curtir tópico
+ 0
Responder
Posts
12/09/2007
Searle
Olá Duzao.
Acho que vc deveria manter a chave primária RU (auto_increment) decimal e criar uma chave candidata RUHEX (VARCHAR) salvando o valor de RU convertido em hexadecimal. O tipo INT UNSIGNED aceita um número inteiro de 0 a 4294967295 (4 bytes). Se não for suficiente, pode utilizar BIGINT, que aceita números maiores que este (8 bytes).
Se desejar posso pesquisar uma TRIGGER para quando inserir um novo resgistro, automaticamente salve o código RU convertido para hexadecimal e armazenado no novo campo RUHEX.
com relação aos registros antigos, pode fazer um script para atualizar o campo com os valores convertidos.
Para ajudar, verifique a utilização da função HEX() no manual de referência do MySQL.
Um grande abraço.
Acho que vc deveria manter a chave primária RU (auto_increment) decimal e criar uma chave candidata RUHEX (VARCHAR) salvando o valor de RU convertido em hexadecimal. O tipo INT UNSIGNED aceita um número inteiro de 0 a 4294967295 (4 bytes). Se não for suficiente, pode utilizar BIGINT, que aceita números maiores que este (8 bytes).
Se desejar posso pesquisar uma TRIGGER para quando inserir um novo resgistro, automaticamente salve o código RU convertido para hexadecimal e armazenado no novo campo RUHEX.
com relação aos registros antigos, pode fazer um script para atualizar o campo com os valores convertidos.
Para ajudar, verifique a utilização da função HEX() no manual de referência do MySQL.
Um grande abraço.
Responder
Gostei + 0
12/09/2007
Duzao®
Rapaz...
Sou leigo no assunto de MySQL... estou apanhando absurdo...
De modelagem eu até manjo...oq nao manjo é de Triger, procedure e Function... mas blz...
1º) Como chamar uma Procedure em PHP... para faze-la rodar?
2º) Como chamar uma Function e como chamar uma triger?
Blz...
3º) Preciso de uma procedure ou triger...sei lá oq... para eu começar a usa-la como elemplo e começar a caminhar...poderia me dar uma ajuda?! Peguei manuais e uma serie de coisas mas nao esta ajudando muito...
Quero algo que faça com que determinados campos de uma tabela sejam preenchidos automaticamente quando eu inserir algo na tabela.
Por exemplo:
Se eu tenho [b:6164eba77c][u:6164eba77c][i:6164eba77c]CD_RU[/i:6164eba77c] [/u:6164eba77c]de chave primaria [/b:6164eba77c]e uns outros 3 campos (Ex: [b:6164eba77c]NM_NOME, NM_RUA [/b:6164eba77c]e [b:6164eba77c][i:6164eba77c]BL_SITUACAO[/i:6164eba77c][/b:6164eba77c]). Devemos imaginar que BL_SITUACAO seja chave estrangeira de uma tabela já alimentada.
Imagine um código que quando eu digitar o nome do cara e o nome da rua, ele irá gerar o RU sozinho devido a essa procedure e o BL_SITUACAO sempre será alimentado com o valor ´1´.
Como faria isto?
Teria 2 procedures nesta tabela... uma para GERAR o CD_RU e outra para SETAR ´1´ em BL_SITUACAO.
A do CD_RU esta meio caminho andado...estamos tentando faze-la rodar...o codigo já temos...mas nao estamos sabendo fazer a ´menina´ funfar...
E essa de Valorizar o BL_Situacao?
é simples d+....porem nao estou sabendo faze-la... :-(
De-me umas dicas... quais livros posso ver esse tipo de coisa? Peguei o Manual do MySQL...mas nao ajudou muito... :cry:
Sou leigo no assunto de MySQL... estou apanhando absurdo...
De modelagem eu até manjo...oq nao manjo é de Triger, procedure e Function... mas blz...
1º) Como chamar uma Procedure em PHP... para faze-la rodar?
2º) Como chamar uma Function e como chamar uma triger?
Blz...
3º) Preciso de uma procedure ou triger...sei lá oq... para eu começar a usa-la como elemplo e começar a caminhar...poderia me dar uma ajuda?! Peguei manuais e uma serie de coisas mas nao esta ajudando muito...
Quero algo que faça com que determinados campos de uma tabela sejam preenchidos automaticamente quando eu inserir algo na tabela.
Por exemplo:
Se eu tenho [b:6164eba77c][u:6164eba77c][i:6164eba77c]CD_RU[/i:6164eba77c] [/u:6164eba77c]de chave primaria [/b:6164eba77c]e uns outros 3 campos (Ex: [b:6164eba77c]NM_NOME, NM_RUA [/b:6164eba77c]e [b:6164eba77c][i:6164eba77c]BL_SITUACAO[/i:6164eba77c][/b:6164eba77c]). Devemos imaginar que BL_SITUACAO seja chave estrangeira de uma tabela já alimentada.
Imagine um código que quando eu digitar o nome do cara e o nome da rua, ele irá gerar o RU sozinho devido a essa procedure e o BL_SITUACAO sempre será alimentado com o valor ´1´.
Como faria isto?
Teria 2 procedures nesta tabela... uma para GERAR o CD_RU e outra para SETAR ´1´ em BL_SITUACAO.
A do CD_RU esta meio caminho andado...estamos tentando faze-la rodar...o codigo já temos...mas nao estamos sabendo fazer a ´menina´ funfar...
E essa de Valorizar o BL_Situacao?
é simples d+....porem nao estou sabendo faze-la... :-(
De-me umas dicas... quais livros posso ver esse tipo de coisa? Peguei o Manual do MySQL...mas nao ajudou muito... :cry:
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)