Jump to content


Photo

Remover Dados De Tabelas Automaticamente.


  • Faça o login para participar
1 reply to this topic

#1 Aislan Cezar

Aislan Cezar

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 22/11/2010, 12:56

Pessoal,
Bom dia a todos!

Bom pessoal, to precisando de uma ajudinha de vocês.

Tenho 2 tabelas que necessito remover dados automaticamente.
Para adicionar os dados, eu mesmo adiciono, só preciso de algo que remova os dados assim que vencer 30 dias.

exemplo:
No momento to fazendo da seguinte forma.
Um usuário faz uma doação de uma certa quantia em dinheiro e adquire uma conta vip em meu site e terá alguns direitos por 30 dias.
Ai, anoto em um bloco de notas o dia em que irá vencer o vip do usuário, vou manualmente no sql server 2008 standard r2 e adicionar os dados manualmente e quando completam-se os 30 dias, tenho que ir lá novamente e deletar os dados.


Exemplo:

Nome da 1ª tabela: user_dados
Colunas: user_id, nome_user, nick_user, nivel;
Ações: vamos supor que já existe um usuário cadastrado em meu site: user_id='1', name_user='carlos', nick_user='carlito', nivel='1';
Então eu adiciono o prefixo [VIP] ao nick_user e o numero 30 ao nivel do usuário ex: nick_user='[VIP]carlito', nivel='30';

Nome da 2ª tabela: user_direitos
Colunas: user_id, direito_id, direito_nivel, data;
Ações: Adiciono os seguintes dados as tabelas: user_id='1', direito_id='8', direito_nivel='30', data='22/11/2010 12:06:00(data do cadastro como vip)';

Descrição das colunas da tabela: user_dados
user_id: Identificação numérica do usuário registrado.
nome_user: Nome de login do usuário.
nick_user: Nome para exibição do usuário no site.
nivel: Nivel de conhecimento do usuário.

Descrição das colunas da tabela: user_direitos
user_id: Identificação numérica do usuário registrado.
direito_id: Identificação do privilégio.
Exemplo: direito_id='1' -> privilégio de acesso a leitura a áreas restritas
Exemplo2: direito_id='2' -> privilégio de acesso a leitura e acesso a postar em áreas restritas
direito_nivel: nivel do privilégio -> nivel personalizado do privilégio.
data: data em que foi adicionado o privilégio vip ao usuário.

Então, após ter se passado os 30 dias a partir da data em que eu cadastrei o usuário como vip, gostaria de algo que removesse esses dados automaticamente das duas tabelas mencionadas acima, e o usuário voltasse a ser um usuário normal.

Aqui um exemplo do que eu gostaria que a job fizesse:
Executar todos os dias as 23:59:00
Verificar na tabela user_direitos a coluna data
Se a data em que o usuário foi adicionado como vip atingiu os 30 dias, então remove os seguintes dados das colunas e tabelas a seguir:

Remover prefixo [VIP] da coluna nick_user da tabela user_dados.
Remover valor 30 da coluna nivel na tabela user_dados e adicionar o valor 1.
Deletar valor 1 da coluna user_id na tabela user_direitos.
Deletar valor 8 da coluna direito_id na tabela user_direitos.
Deletar valor 30 da coluna direito_nivel na tabela user_direitos.
Deletar data 22/10/2010 22:00:00 na coluna data na tabela user_direitos.

Pronto, agora o usuário volta a ser um usuário normal.


Será que é possivel? Existe uma forma, ou alguma coisa que remova os dados automaticamente assim que se concluirem os 30 dias?

Alguém pode me mostrar como fazer isso?

Desde já, agradeço a atenção de todos. =)

#2 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 22/11/2010, 18:03

O próprio SQL tem o recurso de Jobs. Procura no Enterprise Manager que você acha. Aí você cria um pra executar SQLs. O que deve ser feito você mesmo já descreveu aí. É só transformar em query e mandar ver.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq