Procedure, Trigger, Function
Trabalho Escolar: Procedure, Trigger, Function. Pesquise 862.000+ trabalhos acadêmicosPor: rodrigo.jagua • 24/4/2014 • 254 Palavras (2 Páginas) • 380 Visualizações
CREATE DEFINER = 'root'@'localhost' TRIGGER `venda_after_ins_tr` AFTER INSERT ON `venda`
FOR EACH ROW
BEGIN
DECLARE qt_prod INT;
SELECT qtde FROM produto WHERE cd = new.produto INTO qt_prod;
SET qt_prod = qt_prod - new.qtde;
UPDATE produto SET qtde = qt_prod WHERE cd = new.produto;
END;
CREATE DEFINER = 'root'@'localhost' PROCEDURE `AtivaEstorno`(
IN cd_venda INTEGER(11)
)
NOT DETERMINISTIC
BEGIN
DECLARE qt_prod INT;
DECLARE cd_prod INT;
DECLARE qtde_p INT;
SELECT qtde, produto FROM venda WHERE cd=cd_venda INTO qtde_p, cd_prod;
SELECT qtde FROM produto WHERE cd=cd_prod INTO qt_prod;
UPDATE produto SET qtde = qtde_p+qt_prod WHERE cd=cd_prod;
UPDATE venda SET estornado='S' WHERE cd=cd_venda;
END;
CREATE DEFINER = 'root'@'localhost' FUNCTION `VendaTotalCliente`(
cd_cliente INTEGER(11)
)
RETURNS int(11)
DETERMINISTIC
BEGIN
DECLARE Tot FLOAT;
SELECT SUM(Total) INTO Tot
FROM venda
WHERE cliente=cd_cliente AND estornado='n';
RETURN Tot;
END;
CREATE DATABASE `bancodedados`
CHARACTER SET 'latin1'
COLLATE 'latin1_swedish_ci';
USE `bancodedados`;
CREATE TABLE `cliente` (
`cd` int(11) NOT NULL,
`nm` varchar(20) DEFAULT NULL,
PRIMARY KEY (`cd`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `produto` (
`cd` int(11) NOT NULL,
`nm` varchar(20) DEFAULT NULL,
`qtde` int(11) DEFAULT NULL,
PRIMARY KEY (`cd`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `venda` (
`cd` int(11) NOT NULL,
...