Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Alguien me ayuda con TRIGGERS

Estas en el tema de Alguien me ayuda con TRIGGERS en el foro de Mysql en Foros del Web. Hola Amigos deL CLUB DE COSITAS DEL MySQL He intentado lo siguiente pero no me funciona Código PHP: SELECT  IF((( SELECT COUNT ( * )  FROM  ` cpupreorden ...
  #1 (permalink)  
Antiguo 09/12/2007, 11:41
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 1 mes
Puntos: 10
Alguien me ayuda con TRIGGERS

Hola Amigos deL CLUB DE COSITAS DEL MySQL

He intentado lo siguiente pero no me funciona


Código PHP:
SELECT IF(((SELECT COUNT( * ) FROM `cpupreordenWHERE `ordencompra` = '18066100554753d281877d15.06587328' GROUP BY `ordencompra` ) >0), ''INSERT INTO `cpupreorden` (`id`, 

`
user`, `modelo`, `componente`, `ide`, `precio`, `ordencompra`, `fecha`) VALUES (1'Augustino''1''Gabinete'155'286183694753bd5b9935b4.09133438''2007-12-03 

03:45:52'
)) 
#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 'INTO `cpupreorden` (`id`,

`user`, `modelo`, `componente`, `ide`, `precio`, `' at line 1

Código PHP:
CREATE TRIGGER 'inser' BEFORE INSERT ON `cpupreorden`;
BEGIN
DECLARE
    @
numres int,
    FOR 
EACH ROW 
    BEGIN
        SELECT 
@numres COUNT( * ) FROM `cpupreordenWHERE `ordencompra` = '18066100554753d281877d15.06587328' GROUP BY `ordencompra`;
    IF @
numres '0'
        
BEGIN
            INSERT INTO 
`cpupreorden` ( `id` , `user` , `modelo` , `componente` , `ide` , `precio` , `ordencompra` , `fecha` )
VALUES (
'''Augustino''1''Gabinete''1''55''18066100554753d281877d15.06587328'now( ));
        
END;
     
END;
    
END
#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 'DECLARE
@numres int
  #2 (permalink)  
Antiguo 10/12/2007, 07:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Alguien me ayuda con TRIGGERS

En principio:

Las declaraciones de variables deben estar dentro del cuerpo del trigger, es decir, despues del BEGIN.

En segundo lugar, si no me equivoco no puede haber una declaración dentro de una declaración de cuerpo. Sólo puede haber un BEGIN/END dentro de cada trigger, como lo hay dentro de un SP. No estás escribiendo Pascal, sino SQL. Los procesos repetitivos dentro de un TRIGGER se deben escribir cono los controles de flujo del MySQL (ver manual de referencia).
  #3 (permalink)  
Antiguo 10/12/2007, 10:54
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 1 mes
Puntos: 10
Re: Alguien me ayuda con TRIGGERS

Hola Gonzalo, ahora me dice

#1227 - Access denied; you need the SUPER privilege for this operation

Código PHP:
DELIMITER $$

CREATE TRIGGER `inserBEFORE INSERT on `cpupreorden`
FOR 
EACH ROW
BEGIN
    
DECLARE entries INT;
    
SELECT COUNT(*) INTO entries FROM cpupreorden
        WHERE ordencompra 
'18066100554753d281877d15.06587328'
        
GROUP BY ordencompra;
    IF (
entries 0THEN
        INSERT INTO cpupreorden 
(idusermodelocomponenteideprecioordencomprafecha)
        
VALUES ('''Augustino''1''Gabinete''1''55''18066100554753d281877d15.06587328'now());
    
END IF;
END$$

DELIMITER 
  #4 (permalink)  
Antiguo 10/12/2007, 11:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Alguien me ayuda con TRIGGERS

El usuario que estás usando en el login no tiene privilegios para crear triggers, procedures o functions.
El root debería modificar los GRANT al usuario para otorgarle esos permisos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:12.