Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eae galera tranquilo ?
Sou novo no SQL. E estou usando bastante banco agora na empresa e tenho a seguinte dúvida..
Tenho uma base de 1 milhão de registros formados de CPF, NOME e TELEFONE.
Tenho que extrai 10 mil registros por dia. Como faço para continuar de onde parei ? por exemplo, extrai 20 mil reg. é depois como faço pra pegar da linha 20 mil até o 30 mil ?
Olá Motta.
Esta tabela origem tem alguma chave ?
Não. Foi feita de maneira muito simples a principio para somente consulta, não tem nada de muito complexo ainda, mas pretendo melhora lá.
Qual a razão dos "10 mil registros por dia" , não é viável importar tudo ?
Eu posso importar tudo sim mas queria aprender mais para fins de aprendizado pois tbm tenho arquivos de vão muito além de 1milhão.
Suas outras duas perguntas não entendei desculpe
Bom uma solução possível seria :
select cpf,nome,telefone
from <tabela_origem>
where not exists (select null
from <tabela_destino>
where <tabela_destino>.cpf = <tabela_origem>.cpf)mas dependendo do ambiente , índices etc , esta pode ser inviável.
com mais detalhes seria possível pensar uma solução melhor.
Obrigado pelo retorno !
Vou tentar melhorar a estrutura dessa tabela para melhorar a consulta.
Tem alguma dica do que posso utilizar nessa nova criação para melhorar ?
índices , estatísticas atualizadas etc
Blz !!
Obrigado.
Olá Motta,
Depois de alguns dias estudando consegui melhorar a estrutura do meu banco deixei da seguinte forma.
ID esta com AI, ZF, P Key.
Só que tem um porém, eu preciso pegar somente os números que iniciam com 21, pra isso eu utilizo a query abaixo
select Tel_1
from base_pre
where substr(TEL_1,1,2) = '21';
Até aqui consigo me virar. Agora eu queria controlar essa saída de dados de melhor forma utilizando a coluna Data_exp
Teria alguma forma de eu colocar a data nos casos que peguei delimitado ao inicio 21 e inserir na coluna Data_exp ?>
Citar
Até aqui consigo me virar. Agora eu queria controlar essa saída de dados de melhor forma utilizando a coluna Data_exp
Teria alguma forma de eu colocar a data nos casos que peguei delimitado ao inicio 21 e inserir na coluna Data_exp ?
Desculpe , não entendi o problema.
Queria inserir a data nos dados que já extrai
Por exemplo, para pegar o inicio 21 faço a substr.
select Tel_1from base_prewhere substr(TEL_1,1,2) = '21';
Depois que retorna o resultado, quero utilizar somente 100 linhas. Minha dúvida e a seguinte , como posso colocar a data nas 100 primeiras linhas ?
Se eu não tivesse o critério do inicio 21 usaria isso
UPDATE teste
SET data_exp = "2019-06-18"
WHERE ID BETWEEN 1 and 100;
Tem alguma ideia de como poderia fazer isso ?
Como se dá esta extração ?
De onde para onde ?
Esta tabela origem tem alguma chave ?
Qual a razão dos "10 mil registros por dia" , não é viável importar tudo ?