GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Deletar tabela até uma data no SQL?

mysql
Tags: #<Tag:0x00007f7ab3a2d458>

#1

Preciso deletar uma tabela no banco até uma certa data. O que devo colocar em “DATA”, pois está dando erro digitando o comando abaixo:

DELETE TRELCOM WHERE DATA <'2016-01-01'

#2

Creio que o erro seja a falta do from e não na data.

DELETE FROM TRELCOM WHERE DATA < ‘2016-01-01’


#3

Olá Rodrigo.
Todas as tabelas TRELCOM existentes antes de 01/01/2016 precisam ser deletadas.
Preciso deletar a tabela TRELCOM (anterior a data) e não a coluna data.

Com ou sem o FROM retorna o erro abaixo:

Msg 207, Level 16, State 1, Line 1
Invalid column name ‘DATA’.


#4

Como faço?


#5

Não entendi muito bem, tu quer excluir as tabelas da tua database ou os registros dessa tabela trelcom? Porque se for os registros da tabela até uma certa data é como o amigo ali disse
DELETE FROM TRELCOM WHERE DATA < '2016-01-01'
Só tem que substituir esse DATA pelo nome da coluna referente a data.


#6

Cuidado, realize o delete das informações antes da tabela TRELCOM, caso essa informação seja chave em outra tabela, será necessário relacionar com as tabelas subsequentes, se não as informações ficaram vazias na tabela.


#7

Conforme abaixo, no chamado é solicitado para deletar todas as tabelas até a data.

"O senhor deve deletar todas as tabelas iniciadas com TREL até a data 31/12/2015.

  • Depois o senhor deve zerar o estoque a partir do dia 31/12/2015. "

Está dando erro ao regerar o estoque, então foi solicitado a exclusão das tabelas anterior a 2016.

Vou executar com as colunas que estiverem referente a data a cada tabela e testar então.


#8

Boa tarde amigão, então para deletar a tabela(retirar a tabela do BD) o comando é DROP TABLE, já para excluir registros da tabela o comando é DELETE mesmo.

Do modo que está descrito aí no seu chamado ficou um pouco relativo se é para tirar de fato os registros ou a tabela do bd.


#9

Certo.

Utilizei o DROP TABLE e retornei o chamado ontem e foi onde ele pediu para que fosse feita a exclusão até 2015.

A dúvida é como usar o DROP TABLE com a data?


#10

Erika, não estou entendendo o seguinte, porque testar uma data se você vai excluir a tabela toda e sendo que o DROP TABLE você tem que especificar o nome da tabela que você deletar, basta você procurar que dia aquela tabela foi criada e fazer manualmente


#11

Rodrigo…

Com o que o atendente colocou no chamado eu deletei a tabela toda. Então foi gerado novamente saldos e custos e deu um erro, retornamos ao chamado e ele nos informou a frase a seguir …

"O senhor deve deletar todas as tabelas iniciadas com TREL até a data 31/12/2015. Depois o senhor deve zerar o estoque a partir do dia 31/12/2015. "

Então eu não poderia deletar a tabela toda… Segundo o que ele pede, temos de deletar as tabelas (em específico) até 31/12/2015.

Acabei executando o delete de apenas duas tabelas (as únicas que continham informações) até a data informada usando o “DELETE TRELSLD WHERE DATAMOVIMENTO < '2016-01-01’
DELETE TRELSLDTERCEIROS WHERE DATAMOVIMENTO < ‘2016-01-01’”

Ele não gerou o erro, deu tudo certo, fechou estoque, custos … tudo ok, porém não integrou a movimentação.

Existe a possibilidade de deletar as tabelas até a data solicitada? com o DROP TABLE?


#12

Deletar a tabela, quer dizer excluir totalmente a tabela do banco e todas as informacoes. Para fazer isso é usando DROP TABLE

Deletar os registros da tabela é remover os dados da tabela. Pra fazer isso é DELETE FROM , podendo ter um “where” e u ma condição

Não confunda as coisas e entenda o que o cliente quer e exlique o que vc quer tb


#13

Igor,

Existe a possibilidade de deletar a tabela com o DROP TABLE até determinada data?

Como mencionei anteriormente já deletei a tabela com o DROP TABLE, porém foi retornado no chamado que não seria isso, o rapaz do chamado pediu para deletar a tabela até 31/12/2015 é isso que preciso.

E mencionei também que utilizei o DELETE FROM TABELA WHERE <01/01/2016 e que também não deu certo, pois não integrou a movimentação como deveria acontecer.

Você conseguiu entender o que está ocorrendo ou continuo te confundindo me explicando mal?


#14

Eu acho que está ocorrendo um equivoco da sua parte, não é possível deletar uma parte de uma tabela, ou você deleta a tabela TODA com o DROP ou as informações contidas nela (deixando ela sem dado algum ou parte desses dados) com o DELETE.

Você deve fazer com o comando DELETE tabela WHERE campodata < ‘2016-01-01’ (Ele deleta informações, dados de uma tabela, não a tabela em si).

Explique melhor essa parte de “não integrou a movimentação”, seria outra tabela que existe um foreign key para ela?


#15

Eu acho que está ocorrendo um equivoco da sua parte, não é possível deletar uma parte de uma tabela, ou você deleta a tabela TODA com o DROP ou as informações contidas nela (deixando ela sem dado algum ou parte desses dados) com o DELETE.

Rodrigo, bom dia!
Isso que eu precisava confirmar.
Quando foi solicitado deletar a tabela, utilizei o DROP TABLE, porém o cara do chamado da TOTVS disse que era para deletar a tabela até a tal data, foi onde fiquei na dúvida se haveria a possibilidade de deletar a tabela até tal período como ele solicitou. Foi aí que pedi ajuda.

Quanto ao dados da tabela, fiz o delete porém o rapaz da contabilidade que executou o processo disse que não integrou. Retornamos o chamado para a TOTVS e estamos aguardando, agora é depender do que eles irão retornar.

Minha dúvida era mesmo em como deletar uma tabela até certa data … e como mencionou ali, não existe a possibilidade.

Obrigada!


#16

Nao precisa levar ao pé da letra no que está escrito no chamado. Eu acredito muito que qdo ele pediu “Deletar a tabela ate a data X”, ele quis dizer deletar os registros dessa tabela até a data X.

Note que quando vc vai deltar certos registros e eles possuem dependencias de outras tabelas, esses outros registros devem ser excluidos ou inativados também. Ex: Não faz sentido remover um tópico desse fórum e deixar de remover os comentários que foram feitos desse tópico, pois os comentários ficariam “flutuantes”, pensando que Topico é uma tabela e Comentário é outra tabela e eles possuem uma relacao 1 - N, respectivamente. Entende?


#17

Entendi Igor.

Realmente levei o que o rapaz falou ao pé da letra por não ter conhecimento em SQL, só de fuçar em algumas coisas e executo alguns comandos mais simples ou de select normalmente.
Faço a parte de redes da empresa e estou tentando ajudar o rapaz da contabilidade nisso para agilizar o lado dele. E por não ser dessa área perguntei aqui para poder conseguir um auxílio, pois não estava conseguindo achar nada concreto pesquisando.

Obrigada pela ajuda de todos.