Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal! comecei a mexer em triggers e procedures hj, to usando o mysql 5, ta funcionando direitinho,pois testei com procedures prontas que achei na net.
vou colocar a tabela e a procedure:
tenho essa tabela ai...
**CREATE TABLE `notas` (**
`id_nota` int(11) unsigned NOT NULL default '0',
`cd_prof` int(11) NOT NULL,
`cd_alu` int(11) NOT NULL,
`cd_bim` int(11) NOT NULL,
`nota` float NOT NULL,
`ano` char(4) NOT NULL,
PRIMARY KEY (`id_nota`,`cd_prof`,`cd_alu`,`cd_bim`,`ano`),
KEY `cd_prof` (`cd_prof`),
KEY `cd_alu` (`cd_alu`),
KEY `cd_bim` (`cd_bim`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
e criei essa procedure abaixo
DELIMITER $$
DROP PROCEDURE IF EXISTS notafacil.pr_notas $$
CREATE PROCEDURE notafacil.pr_notas ( OUT total INT, IN professor INT, IN aluno INT, IN bimestre INT, IN ano CHAR(4) )
BEGIN
select max(id_nota) into total from notas where cd_prof=professor and cd_alu=aluno and cd_bim=bimestre and ano='ano';
END $$
o que eu quero é o seguinte:
selecionar o maior id_nota e quardar numa variavel dentro da propria procedure quando cd_prof=professor , cd_alu=aluno, cd_bim=bimestre ano='ano' sendo que professor, aluno, bimestre,ano são passado por parametro. Apos achar o maior id_nota, referente a combinação daquela chave, a procedure de um INSERT na tabela notas repetindo os mesmos valores da linha que foi consultada,porem com o id_nota + 1, ou seja se o maior id_nota de uma linha for 3, a proxima linha enserida terá id_nota = 4.
Pessoal como to apenas começando em mexer nisso, não sei se os parametros estão sendo passados corretamente, nem como puxar um dado de uma consulta SQL e quardar dentro de uma variavel, gostaria que vcs desse uma olhada em todo o codigo, pra ta uma analizada em minhas mancadas!
Galera deste já o meu muito obrigado e um forte abraço a todos da comunidade imasters!
Carregando comentários...