
15/10/2012, 11:03
|
 | | | Fecha de Ingreso: abril-2012 Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 11 meses Puntos: 12 | |
ejecutar trigger desde statement Buen dia , tengo una base de datos que creo a travez de un archivo de texto con las instrucciones sql para crearlas en mysql a travez de un statement , todo esto lo hace bien , pero tengo la duda de como pasar o crear un trigger a travez de un statement pues al hacer la prueba este no se crea , el trigger lo tengo compuesto de la siguiente forma
Código:
DROP TRIGGER IF EXISTS ACTCODIGO;
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');
END IF;
END IF;
END
|
DELIMITER ;
lo que desconozco es si debo pasar el texto tal cual o debo eliminar o sustituir el punto y coma por algun otro caracter o suprimirlo o si debo dejar o eliminar la indicacion del cambio del delimiter , agradeceria mucho me pudieran orientar sobre como pasar la instruccion de manera correcta al preparedStatement de antemano se agradece la atencion |