Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Veja a procedure abaixo, ela dar erro ao tentar rodar no phpmysql
Erro
consulta SQL:
/procedure estatística// DELIMITER $$ DROP PROCEDURE IF EXISTS sp_registra_estatistica $$/ CREATE PROCEDURE sp_registra_estatistica ( IN var_imei VARCHAR( 15 ) ) BEGIN DECLARE hora TINYINT;
Mensagens do MySQL :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Procedure:
/procedure estatística/
/*
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_registra_estatistica $$*/
CREATE PROCEDURE sp_registra_estatistica(IN var_imei VARCHAR(15))
BEGIN
DECLARE hora TINYINT;
DECLARE excecao CHAR(1) DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET excecao = 1;
/*Estatistica: quantidade total*/
INSERT INTO est_quantidade_coordenadas (imei, data, quantidade) VALUES (var_imei, CURDATE(), 1);
IF excecao = 1 THEN
UPDATE est_quantidade_coordenadas SET quantidade = quantidade + 1 WHERE imei = var_imei AND data = CURDATE();
END IF;
SET excecao = 0;
/*Estatistica: quantidade por hora*/
INSERT INTO est_quantidade_hora (imei, data) VALUES (var_imei, CURDATE());
IF excecao = 1 THEN
SELECT HOUR(CURTIME()) INTO hora FROM dual;
CASE
WHEN hora = 0 THEN
UPDATE est_quantidade_hora SET 0h = 0h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 1 THEN
UPDATE est_quantidade_hora SET 1h = 1h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 2 THEN
UPDATE est_quantidade_hora SET 2h = 2h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 3 THEN
UPDATE est_quantidade_hora SET 3h = 3h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 4 THEN
UPDATE est_quantidade_hora SET 4h = 4h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 5 THEN
UPDATE est_quantidade_hora SET 5h = 5h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 6 THEN
UPDATE est_quantidade_hora SET 6h = 6h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 7 THEN
UPDATE est_quantidade_hora SET 7h = 7h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 8 THEN
UPDATE est_quantidade_hora SET 8h = 8h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 9 THEN
UPDATE est_quantidade_hora SET 9h = 9h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 10 THEN
UPDATE est_quantidade_hora SET 10h = 10h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 11 THEN
UPDATE est_quantidade_hora SET 11h = 11h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 12 THEN
UPDATE est_quantidade_hora SET 12h = 12h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 13 THEN
UPDATE est_quantidade_hora SET 13h = 13h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 14 THEN
UPDATE est_quantidade_hora SET 14h = 14h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 15 THEN
UPDATE est_quantidade_hora SET 15h = 15h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 16 THEN
UPDATE est_quantidade_hora SET 16h = 16h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 17 THEN
UPDATE est_quantidade_hora SET 17h = 17h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 18 THEN
UPDATE est_quantidade_hora SET 18h = 18h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 19 THEN
UPDATE est_quantidade_hora SET 19h = 19h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 20 THEN
UPDATE est_quantidade_hora SET 20h = 20h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 21 THEN
UPDATE est_quantidade_hora SET 21h = 21h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 22 THEN
UPDATE est_quantidade_hora SET 22h = 22h + 1 WHERE imei = var_imei AND data = CURDATE();
WHEN hora = 23 THEN
UPDATE est_quantidade_hora SET 23h = 23h + 1 WHERE imei = var_imei AND data = CURDATE();
END CASE;
END IF;DELIMITER ;*/
---------------------
/trigger de liberacao e estatistica/
/DELIMITER |/
CREATE TRIGGER tr_checaLiberacaoIMEI BEFORE INSERT ON gprmc FOR EACH ROW
BEGIN
call sp_registra_estatistica(NEW.imei);
UPDATE bem SET modo_operacao = 'GPRS' WHERE imei = NEW.imei and modo_operacao = 'SMS';
END;
/|/
Carregando comentários...