
21/11/2012, 05:38
|
 | | | Fecha de Ingreso: junio-2009 Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 15 años, 8 meses Puntos: 17 | |
Respuesta: problema al querer crear trigger desde prepared statement Cita:
Iniciado por fahs82
Código:
...
DELIMITER $$;
CREATE TRIGGER actcodigo
BEFORE INSERT ON BC_ARTICULOS
FOR EACH ROW
BEGIN
DECLARE digito INT DEFAULT 0;
DECLARE resultado INT DEFAULT 0;
DECLARE IDN INT DEFAULT 0;
DECLARE NUMPREV VARCHAR(30) DEFAULT 0;
IF NEW.BARCODE IS NULL THEN
SET IDN = (SELECT MAX(ID) FROM BC_ARTICULOS);
IF IDN IS NULL THEN
SET IDN = 1;
ELSE
SET IDN = (SELECT MAX(ID) FROM BC_ARTICULOS) +1;
END IF;
SET NUMPREV = 750000000000 + IDN;
SET DIGITO = 10-(((substr(NUMPREV,2,1)+substr(NUMPREV,4,1)+substr(NUMPREV,6,1)+substr(NUMPREV,8,1)+substr(NUMPREV,10,1)+substr(NUMPREV,12,1))*3)+((substr(NUMPREV,1,1)+substr(NUMPREV,3,1)+substr(NUMPREV,5,1)+substr(NUMPREV,7,1)+substr(NUMPREV,9,1)+substr(NUMPREV,11,1))))mod 10;
IF DIGITO < 10 THEN
SET NEW.BARCODE = CONCAT(NUMPREV,DIGITO);
ELSE
SET NEW.BARCODE = CONCAT(NUMPREV,'0');
<<< Falta cerrar el IF
ELSE
SET NEW.BARCODE = CONCAT(NUMPREV,'0');
END IF;
END
...
Posiblemente te falta cerrar el IF que te comente en el codigo.
Suerte! |