Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
Zeusyoshino

Procedure para alteração de campo

Question

Equipe.

Boa tarde.
Sou novo aqui no fórum e precisado da ajuda de vocês!
Tenho um projeto de Java pra WEB onde usamos JDBC para criação de um banco no Phpmyadmin, o CRUD já está feito com todas as DAO e Beans. Um dos requisitos deste projeto é que o módulo deve ter uma data de validade (atributo já colocado na tabela Modulo), quando a data de validade dele vencer, o status do módulo deve ser trocado para inativo, ou seja, mudar o valor de 1 para 0, para que ele possa fechar sozinho, caso o professor esqueça de fecha-lo.
A logica que eu pensei foi na seguinte, se a data atual do sistema for depois da validade do módulo, eu mudo o modu_status para 0.
Só que essa Procedure tem que ser disparada toda 00:00, não é algo que eu consiga controlar pelo código no Java, é algo que o banco tenha que fazer sozinho.
O problema é que eu nunca fiz uma Procedure, alguém tem algum esqueleto que faça algo parecido e eu possa adaptar para o meu código ?
Uma Procedure é a unica maneira de fazer isso ? Posso fazer de outra forma ?
Abaixo tem as Querys de criação do banco de dados, desde já agradeço a atenção de vocês.

 

 

 

CREATE TABLE Professor(

 

prof_username VARCHAR(20) NOT NULL,

prof_senha VARCHAR(20) NOT NULL,

prof_status INT(1) NOT NULL,

prof_senhavenc DATE NOT NULL,

prof_nome VARCHAR(50),

prof_especialidade VARCHAR(30) NOT NULL,

prof_nivel VARCHAR(3) NOT NULL,

prof_cargahoraria INT (2) NOT NULL,

 

CONSTRAINT prof_username_pk PRIMARY KEY (prof_username)

 

);


 

CREATE TABLE Secretaria(

 

secr_username VARCHAR(20) NOT NULL,

secr_senhavenc DATE NOT NULL,

secr_status INT(1) NOT NULL,

secr_senha VARCHAR(20),

   secr_nome VARCHAR(50),

   

 

CONSTRAINT secr_username_pk PRIMARY KEY (secr_username)

 

);


 

CREATE TABLE Aluno(

 

alun_ra INT(6) NOT NULL,

alun_nome VARCHAR(50) NOT NULL,

alun_senha VARCHAR(20) NOT NULL,

alun_condpaga VARCHAR(20),

   alun_datamat DATE,
alun_senhavenc DATE,

alun_status INT(1),

   

 

CONSTRAINT alun_ra_pk PRIMARY KEY (alun_ra)

   

 

);

 

CREATE TABLE Solicitacao(

 

soli_cod INT(4) NOT NULL,

soli_dataped DATE NOT NULL,

soli_status INT(1) NOT NULL,

soli_alun_ra INT(6) NOT NULL,

soli_dataemi DATE NOT NULL,

 

CONSTRAINT soli_cod_pk PRIMARY KEY (soli_cod)

);

 

CREATE TABLE ProfessorModulo(

 

pm_prof_user VARCHAR(20) NOT NULL,

pm_cod INT NOT NULL,

pm_modu_cod INT NOT NULL,

 

CONSTRAINT pm_cod_pk PRIMARY KEY (pm_cod),

CONSTRAINT pm_prof_user_fk FOREIGN KEY (pm_prof_user) REFERENCES Professor (prof_username)

);


 

CREATE TABLE Curso(

 

curs_cod INT(4) NOT NULL,

curs_nome VARCHAR(20) NOT NULL,

curs_idioma VARCHAR(20) NOT NULL,

 

CONSTRAINT curs_cod PRIMARY KEY (curs_cod)

 

);

 

CREATE TABLE Modulo(

 

modu_cod INT(4) NOT NULL,

modu_nome VARCHAR(100),

modu_nivel VARCHAR(3) NOT NULL,

modu_horario VARCHAR(50),

   modu_status INT(1),

   modu_conteudo VARCHAR(100),

   modu_preco FLOAT(7,2),

   modu_cargahoraria INT(2),

   modu_pubalvo VARCHAR(20),

   modu_validade DATE,

   modu_curs_cod INT(4),

   

 

CONSTRAINT modu_cod_pk PRIMARY KEY (modu_cod),

   CONSTRAINT modu_curs_cod_fk FOREIGN KEY (modu_curs_cod) REFERENCES Curso (curs_cod)

 

);

 

CREATE TABLE Parcela(

 

parc_cod INT(4) NOT NULL,

parc_datavenc DATE NOT NULL,

parc_precototal FLOAT(7,2) NOT NULL,

parc_desconto FLOAT(7,2) NOT NULL,

parc_precofinal FLOAT(7,2) NOT NULL,

parc_num INT(4) NOT NULL,

parc_alun_ra INT(6) NOT NULL,

parc_modu_cod INT(4) NOT NULL,

 

CONSTRAINT parc_cod_pk PRIMARY KEY (parc_cod),

   CONSTRAINT parc_alun_ra_fk FOREIGN KEY (parc_alun_ra) REFERENCES Aluno (alun_ra),

   CONSTRAINT parc_modu_cod_fk FOREIGN KEY (parc_modu_cod) REFERENCES Modulo (modu_cod)

);

 

CREATE TABLE AlunoModulo(

 

am_cod INT(4) NOT NULL,

am_alun_ra INT(6) NOT NULL,

am_modu_cod INT(4) NOT NULL,

am_status INT(1) NOT NULL,

am_faltas INT(3) NOT NULL,

am_conceparc CHAR(1) NOT NULL,

am_concefinal CHAR(1) NOT NULL,

am_datamat DATE NOT NULL,


 

CONSTRAINT am_cod_pk PRIMARY KEY (am_cod),

   CONSTRAINT am_alun_ra_fk FOREIGN KEY (am_alun_ra) REFERENCES Aluno (alun_ra),

   CONSTRAINT am_modu_cod_fk FOREIGN KEY (am_modu_cod) REFERENCES Modulo (modu_cod)

);

Edited by Zeusyoshino

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

voce pode criar normalmente as procedures e depois cirar um JOB no sql server, pra agendar a execução

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Cloud Computing


  • Forum Statistics

    • Total Topics
      148402
    • Total Posts
      643804
×
×
  • Create New...