Ir para conteúdo

POWERED BY:

Arquivado

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

fer_aline

Tabela temporária

Recommended Posts

Olá http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

Estou precisando de uma ajudinha!! Por favor http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

eu preciso fazer consulta de duas tabelas independentes.

As duas tem um campo data que vai ser pelo qual eu vou procurar.

 

por exemplo

 

SELECT * FROM contas WHERE data_nota BETWEEN 'data_inicio' AND 'data_final'

SELECT * FROM despesas WHERE data_nota BETWEEN 'data_inicio' AND 'data_final'

 

queria guardar o valor dos dois SELECTS em uma tabela temporária para depois fazer um SELECT nessa tabela para poder ordenar o valor das consultas por data e mostrá-la por exemplo:

 

para contas achou

Conta 1 data 31/10

Conta 2 data 1/11

conta 3 data 3/11

 

para despesas

despesa 1 data 30/10

despesa 2 data 31/10

despesa 3 data 1/11

despesa 4 data 2/11

 

e mostra assim:

despesa 1 data 30/10

Conta 1 data 31/10

despesa 2 data 31/10

despesa 3 data 1/11

Conta 2 data 1/11

despesa 4 data 2/11

conta 3 data 3/11

 

Tem alguma maneira de criar uma tabela temporaria no servidor??

Dai cada usuário que fizer uma consulta é criada uma tabela temporária e depois essa tabela é apagada??

 

Obrigada http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falai menina...

seguinte, sempre que preciso fazer alguma coisa desse tipo uso CURSOR.

 

Mas se quiser fazer por temporária, vai um exemplo.

 

create table temp type=heapSELECT * FROM contas WHERE data_nota BETWEEN 'data_inicio' AND 'data_final'

Qualquer coisa é só falar... :D

Até mas... http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Rafael.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigadinha!! :) Só mais uma coisa: no final eu deleto ela ou ela se "apaga" sozinha?? O.ovaleuu http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Falai menina...seguinte, sempre que preciso fazer alguma coisa desse tipo uso CURSOR.Mas se quiser fazer por temporária, vai um exemplo.

create table temp type=heapSELECT * FROM contas WHERE data_nota BETWEEN 'data_inicio' AND 'data_final'
Qualquer coisa é só falar... :D Até mas... http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif Rafael.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Okk http://forum.imasters.com.br/public/style_emoticons/default/joia.gif obrigada!!

mais assim se a aplicação terminar de forma inesperada como apago essa tabela?? ou ela não permanece??

Ah e para travar uma tabela supondo que duas pessoas estao tentando criar a tabela temp tem como?

eu tentei assim e não deu

LOCK TABLES temp WRITE;

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode sim Aline...

 

CREATE TABLE temp ( campo 1, campo 2... ) TYPE=HEAP;LOCK TABLE TempTable WRITE;

Pra liberar...

 

UNLOCK TABLE temp;

Com relação a tabela, a temporária é tratada diferente no MySQL (acho que tem um monte de coisa fora do padrão ANSI, isso me atrapalha muito... :huh: ), nesse caso a tabela é criada em memória e só será "deletada" por você ou quando reiniciar ou desligar o computador.

 

Caso for por um erro, você tem q captura-lo quando acontecer e apartir dai dropar a tabela...

 

Qualquer coisa é só falar que o pessoal te ajuda...

Abraços... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Rafael.

 

Ou faz melhor...

Toda vez que seu sistema iniciar de uma busca por essa tabela, se ela existir drope-a (bela palavra...rs)

Isso vai garantir que a tabela não persista quando houver o próximo login no sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei resolvendo esse problema colocando uma verificação.. eu crio a tabela com o nome do usuario.. se existir eu dou um dorp e crio a nova.

 

Mas outra dúvida surgiu... essa tabela é de uma intranet .. que fica num servidor Linux, eu teria que dar a todos os usuarios permissao para criar e deletar tabela.. :(

Tem como ao invés disso eu criar essa tabela na memoria da maquina.. ???

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif de novo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim dar permissão para todos criarem tabelas!não é só você que cria??Não fica melhor você ter uma tabela real ao invés de ficar sempre criando tabelas temporárias.Mas que eu saiba, não precisa de 'autorização' especial.Mesmo só tendo a permissão de consulta, você poder criar tabelas temporárias, só não tem como alterar,criar ou apagar dados das tabelas normais.

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.