Inserir dados autoinc em tabela já com dados
Tenha uma tabela com mais de 30.000 linhas.
Preciso editar um campo em todas as linhas com valores não duplicados, tipo 1,2,3,4... 30000
Como faço para insetir? Depois esse campo também terá que ser autoinclemento para os novos das inseridos.
Lembrando que a tabela já tem um um campo autoinc que é o código.
Meu banco é firebird, estou utilizando Dbexpress e Delphi 7.
Preciso editar um campo em todas as linhas com valores não duplicados, tipo 1,2,3,4... 30000
Como faço para insetir? Depois esse campo também terá que ser autoinclemento para os novos das inseridos.
Lembrando que a tabela já tem um um campo autoinc que é o código.
Meu banco é firebird, estou utilizando Dbexpress e Delphi 7.
Lucas Souza
Curtidas 0
Respostas
Wilson Junior
28/02/2011
Crie um GENERATOR no BeforePost vc pode atribuir o valor do GENERATOR para o seu campo de AutoInc, esta é apenas uma sugestão, pois existem N maneiras de serem feitas.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Marco Salles
28/02/2011
Tenha uma tabela com mais de 30.000 linhas.
Preciso editar um campo em todas as linhas com valores não duplicados, tipo 1,2,3,4... 30000
Como faço para insetir? Depois esse campo também terá que ser autoinclemento para os novos das inseridos.
Lembrando que a tabela já tem um um campo autoinc que é o código.
Meu banco é firebird, estou utilizando Dbexpress e Delphi 7.
O Paulista entendeu de uma maneira eu confesso que não entendi
Preciso editar um campo em todas as linhas com valores não duplicados, tipo 1,2,3,4... 30000
Como faço para insetir? Depois esse campo também terá que ser autoinclemento para os novos das inseridos.
Lembrando que a tabela já tem um um campo autoinc que é o código.
Meu banco é firebird, estou utilizando Dbexpress e Delphi 7.
Vc tem uma tabela com 30.000 linhas. ..
OK
Preciso editar um campo em todas as linhas com valores não duplicados, tipo 1,2,3,4... 30000
Vc vai editar um campo , e este campo nao pode ter valores duplicados .. OK
Como faço para insetir? Depois esse campo também terá que ser autoinclemento para os novos das inseridos.
Lembrando que a tabela já tem um um campo autoinc que é o código.
Lembrando que a tabela já tem um um campo autoinc que é o código.
Para que dois campos AutoIncrementos ??? e se esses campos ficarem com valores iguais ???
GOSTEI 0
Lucas Souza
28/02/2011
Marco
Já tenho um generator para um campo da tabela, posso criar dois para o outro campo?
Além desse campo ter o autoinclemento para novos dados, preciso atribuir valores para esse campo nos dados que já existe, tipo, a tamble já tem 30.000 registros, o campo novo criei agora, preciso que seja preenchido esse campo em todos os registros.
Grato pela resposta
Já tenho um generator para um campo da tabela, posso criar dois para o outro campo?
Além desse campo ter o autoinclemento para novos dados, preciso atribuir valores para esse campo nos dados que já existe, tipo, a tamble já tem 30.000 registros, o campo novo criei agora, preciso que seja preenchido esse campo em todos os registros.
Grato pela resposta
GOSTEI 0
Lucas Souza
28/02/2011
Marco
O caso é o seguinte:
Tenho uma tabela PACIENTES
Essa tabela possui 30000 registros
Campos:
CODPACIENTE (AutoInc)
NOME
ENDERECO
TELEFONE
CIDADE
surgiu a necessidade de acrescentar outro campo "PRONTUARIO", mas esse campo não será igual ao campo CODPACIENTE
Agora não sei como fazer, pra editar os paciente já cadastrados com o novo campo e autoinclementar o campo PRONTUARIO para novos pacientes.
O caso é o seguinte:
Tenho uma tabela PACIENTES
Essa tabela possui 30000 registros
Campos:
CODPACIENTE (AutoInc)
NOME
ENDERECO
TELEFONE
CIDADE
surgiu a necessidade de acrescentar outro campo "PRONTUARIO", mas esse campo não será igual ao campo CODPACIENTE
Agora não sei como fazer, pra editar os paciente já cadastrados com o novo campo e autoinclementar o campo PRONTUARIO para novos pacientes.
GOSTEI 0
Marco Salles
28/02/2011
Marco e Paulista já tenho um generator para um campo da tabela, posso criar dois para o outro campo?
Acho que sim ... Além desse campo ter o autoinclemento para novos dados, preciso atribuir valores para esse campo nos dados que já existe, tipo, a tamble já tem 30.000 registros, o campo novo criei agora, preciso que seja preenchido esse campo em todos os registros.
Grato pela respostas
Acho que isso é tranquilo .. Fazer um Update nesse campo . No proprio IbExpert da para fazer isto
.
Grato pela respostas
Marco e Paulista
O caso é o seguinte:
Tenho uma tabela PACIENTES
Essa tabela possui 30000 registros
Campos:
CODPACIENTE (AutoInc)
NOME
ENDERECO
TELEFONE
CIDADE
surgiu a necessidade de acrescentar outro campo "PRONTUARIO", mas esse campo não será igual ao campo CODPACIENTE
Bem que ele não sera igual é o simples fato da sua existencia . O Fato é que se ele for for gerado a partir de um Autoincremento , ele sera na mesma base que o campo codigo
Por exemplo , vc pode começar um Gerator com o valor 500 (como exemplo)
Assim para o Registro Campo=1 o Protuario sera 500
Assim para o Registro Campo=2 o Protuario sera 501
Assim para o Registro Campo=3 o Protuario sera 502
Assim para o Registro Campo=3 o Protuario sera 503
e assim sucessivamente ... So não vejo vantagem nenhuma nisso ..O caso é o seguinte:
Tenho uma tabela PACIENTES
Essa tabela possui 30000 registros
Campos:
CODPACIENTE (AutoInc)
NOME
ENDERECO
TELEFONE
CIDADE
surgiu a necessidade de acrescentar outro campo "PRONTUARIO", mas esse campo não será igual ao campo CODPACIENTE
Agora não sei como fazer, pra editar os paciente já cadastrados com o novo campo e autoinclementar o campo PRONTUARIO para novos pacientes.
Para editar como eu disse parece não ter problema , a redudancia para mim é colocar este campo como autoincremento para novos pacientes .. Em outra palavra , mesmo que vc não queiraque Prontuário seje diferente
de CODPACIENTE , na prática ele tera o mesmo efeito , e isto para mim é uma redundancia..
GOSTEI 0
Lucas Souza
28/02/2011
Preciso editar o campo PRONTUARIO porque já existe vários porntuários cadastrados no banco do hostipal (Fora do sistema) com números de até 25.000.
Por isso preciso editar os dados do novo campo para dados acima de 25.000.
Fico grato pela ajuda.
só não consegui fazer o update do Ibexpert, pode dar uma força?
Agradeço novamente
Por isso preciso editar os dados do novo campo para dados acima de 25.000.
Fico grato pela ajuda.
só não consegui fazer o update do Ibexpert, pode dar uma força?
Agradeço novamente
GOSTEI 0
Wilson Junior
28/02/2011
Crie um GENERATOR para o seu campo prontuário e o inicialize com 25.000 assim você terá os seus prontuários todos a partir do 25.001.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Lucas Souza
28/02/2011
Paulista
Tudo bem!
Criei o generator, mas somente ira inclementar para os pacientes inseridos daqui pra frente, para os pacientes já cadastrados, o campo PRONTUARIO fica em branco.
preciso preencher o campo PRONTUARIO dos pacientes já cadastrados.
Grato
Tudo bem!
Criei o generator, mas somente ira inclementar para os pacientes inseridos daqui pra frente, para os pacientes já cadastrados, o campo PRONTUARIO fica em branco.
preciso preencher o campo PRONTUARIO dos pacientes já cadastrados.
Grato
GOSTEI 0
Marco Salles
28/02/2011
Paulista
Tudo bem!
Criei o generator, mas somente ira inclementar para os pacientes inseridos daqui pra frente, para os pacientes já cadastrados, o campo PRONTUARIO fica em branco.
preciso preencher o campo PRONTUARIO dos pacientes já cadastrados.
Grato
Olha lucas eu acho que uma solução para o preenchimento dos pacientes ja cadastrados seria uma stored procedure
que pode ser feito pelo ibexpert mesmo. o que a stored procedure irá fazer , ela ira percorrer todos os 30000 registros
da sua tabela e no no campo PRONTUARIO Ele ira editar para que o seu valor começe com 25000 ... e aumentando de
modo sequencial , de uma so vez em um único processo garantindo a atomicidade dessas ediçoes
caso queira eu lhe mostro como deve ficar o codigo bem como executar pelo IBExpert
Sobre sua segunda questão
Na minha opinião é um desperdicio vc criar dois campos auto_incrementos para esta tabela . Não há necessidade disso
pense ...
CODIGOPACIENTE 1 -->>> PRONTUARIO 25000
CODIGOPACIENTE 2 -->>> PRONTUARIO 25001
CODIGOPACIENTE 3 -->>> PRONTUARIO 25002
CODIGOPACIENTE 4 -->>> PRONTUARIO 25003
CODIGOPACIENTE 5 -->>> PRONTUARIO 25004
Seguindo esta linha (que na realidade é a sua linha) , qnd o CODIGOPACIENTE Tiver um Valor "N " O Prontuario terá
um Valor ( N + 25000 ) ...
como fazer isto ???? Ora na sua Trriger que ja esta definida para o CAMPO CODIGOPACIENTE Inclua
Tudo bem!
Criei o generator, mas somente ira inclementar para os pacientes inseridos daqui pra frente, para os pacientes já cadastrados, o campo PRONTUARIO fica em branco.
preciso preencher o campo PRONTUARIO dos pacientes já cadastrados.
Grato
AS BEGIN IF (NEW.CODIGOPACIENTE IS NULL) THEN begin NEW.CODIGOPACIENTE = GEN_ID(GEN_CODIGOPACIENTE_ID,1); NEW.PRONTUARIO = NEW.CODIGOPACIENTE + 250000; end END
GOSTEI 0
Wilson Junior
28/02/2011
Concordo com o Marco.
GOSTEI 0
Lucas Souza
28/02/2011
Marco
Quem sabe sabe!
Entendi agora seu raciocínio, na verdade, eu nem precisaria do campo prontuário, posso indicar pro sistema que o número do prontuário do paciente é o COD_PACIENTE + 25.000 correto?
Fico muito grato pela ajuda.
Quem sabe sabe!
Entendi agora seu raciocínio, na verdade, eu nem precisaria do campo prontuário, posso indicar pro sistema que o número do prontuário do paciente é o COD_PACIENTE + 25.000 correto?
Fico muito grato pela ajuda.
GOSTEI 0
Lucas Souza
28/02/2011
Marco
Quem sabe sabe!
Entendi agora seu raciocínio, na verdade, eu nem precisaria do campo prontuário, posso indicar pro sistema que o número do prontuário do paciente é o COD_PACIENTE + 25.000 correto?
Fico muito grato pela ajuda.
Quem sabe sabe!
Entendi agora seu raciocínio, na verdade, eu nem precisaria do campo prontuário, posso indicar pro sistema que o número do prontuário do paciente é o COD_PACIENTE + 25.000 correto?
Fico muito grato pela ajuda.
GOSTEI 0
Marco Salles
28/02/2011
Marco
Entendi agora seu raciocínio, na verdade, eu nem precisaria do campo prontuário, posso indicar pro sistema que o número do prontuário do paciente é o COD_PACIENTE + 25.000 correto?
Fico muito grato pela ajuda.
Sempre achei redudante ter dois autoincremento . Mas seguindo a sua linha de raiocineo:
"posso indicar pro sistema que o número do prontuário do paciente é o COD_PACIENTE + 25.000"
Vc quer fazer isto no Post ???? Se for acho que dá certo tb , apesar de gostar mais deste incremento na Triguer
Sabe porque ???? Porque sua margem de preocupação será menor. Tai um exemplo que não ocorrerá , mas poderá
ocorrer. Caso uma pessoa menos informada , insira dados nesta tabela utilizando outro Aplicativo . O gerador vai
cuidar de Atribuir o valor correto para o CODIGOPACIENTE , mas quem vai atribuir o valor do + 25000 para o seu
campo PRONTUÁRIO ???? Existe esta possibilidade ??? remota ,quase zero , mas ha de convir que existe
Agora , mas nada impeça que seje no BeforePost ou um outro evento responsavel por este Tráfego
Entendi agora seu raciocínio, na verdade, eu nem precisaria do campo prontuário, posso indicar pro sistema que o número do prontuário do paciente é o COD_PACIENTE + 25.000 correto?
Fico muito grato pela ajuda.
GOSTEI 0