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

problema cn trigger

Estas en el tema de problema cn trigger en el foro de Mysql en Foros del Web. Hola, necesito un poco de ayuda e informacion. tengo instalado xampp con phpmyadmin v. 3.1.1 y mysql v 5.1.30 necesito crear un trigger no se ...
  #1 (permalink)  
Antiguo 23/09/2009, 08:20
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta problema cn trigger

Hola, necesito un poco de ayuda e informacion.
tengo instalado xampp
con phpmyadmin v. 3.1.1
y mysql v 5.1.30
necesito crear un trigger no se si se puede hacer directamente en la bd ( y si se puede donde lo ingreso) y si no se puede, hacerlo directamente con codigo php.


CREATE OR REPLACE TRIGGER usuario
AFTER INSERT
ON veterinaria.cliente
FOR EACH ROW
INSERT INTO usuario(IdUsuario,PERFIL_PerfilTipo,NombreUsuario, PassUsuario,FechaIngreso)
VALUES (NEW.IdCliente,NEW.tipo,NEW.NombreCliente,NEW.Pass Cliente,NOW());
END IF;
END;



porfa si alguien me orienta :)
  #2 (permalink)  
Antiguo 23/09/2009, 08:26
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problema cn trigger

Veo que tienes un end if, pero no un if.
Haz uso de delimitadores para ejecutar el trigger.

Código sql:
Ver original
  1. delimiter &&
  2. CREATE OR REPLACE TRIGGER usuario
  3. AFTER INSERT
  4. ON veterinaria.cliente
  5. FOR EACH ROW
  6. INSERT INTO usuario(IdUsuario,PERFIL_PerfilTipo,NombreUsuario, PassUsuario,FechaIngreso)
  7. VALUES (NEW.IdCliente,NEW.tipo,NEW.NombreCliente,NEW.Pass Cliente,NOW());
  8. END&&
  9. delimiter ;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 23/09/2009, 08:53
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Respuesta: problema cn trigger

Antes de todo gracias por responder, si tienes razon olvide borrar ese cierre de if

ese codigo q me envias, lo ingreso directamente como una consulta en el phpmyadmin ?
  #4 (permalink)  
Antiguo 23/09/2009, 09:01
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problema cn trigger

No uso phpmyadmin asi que no se si de resultado. (Pruebalo y nos cuentas)

Yo lo ejecuto siempre desde consola.

inicio->ejecutar->cmd
Ya en la consola DOS, parate en la carpeta bin de mysql.
c:\archivos de programa\xampp\mysql\bin>mysql -u root -p
Aca te pide el password del usuario root de mysql (Puedes loguearte con otro usuario.)
Ya en la consola de mysql, te debe aparecer algo así:
mysql>
Después debes seleccionar la base de datos que usas.
mysql>use tu_base;
En este punto, ya puedes pegar el trigger como te lo pasé.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 23/09/2009, 09:46
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: problema cn trigger

e probado y me tira error.


ERROR 1064 (42000): 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 'TRIGG
ER usuario
AFTER INSERT
ON veterinaria.cliente
FOR EACH R' at line 1

le saque el for each row pero tira error mas abajo

ERROR 1064 (42000): 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 'TRIGG
ER usuario
AFTER INSERT
ON veterinaria.cliente
INSERT INT' at line 1

=(
probe tambien por el phpmyadmin pero no funka.
  #6 (permalink)  
Antiguo 23/09/2009, 09:51
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: problema cn trigger

Ya lo solucione :D

delimiter //
CREATE TRIGGER usuario AFTER INSERT ON cliente
FOR EACH ROW
BEGIN
INSERT INTO usuario(IdUsuario,PERFIL_PerfilTipo,NombreUsuario, PassUsuario,FechaIngreso)
VALUE (NEW.IdCliente,NEW.tipo,NEW.NombreCliente,NEW.Pass Cliente,NOW());
END;//

use ese codigo.
  #7 (permalink)  
Antiguo 23/09/2009, 09:52
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
Respuesta: problema cn trigger

Te falta el BEGIN en el modelo o te sobra el END.
En el PHPMyadmin quitale las lineas de DELIMITER y abajo de la pantalla verás una celda para poner el caracter de terminación de línea. Pon $$ allí y ejecuta.
En consola debes ingresar primero el antes de escribir el cuerpo del código, y luego volver a cambiar el DELIMITER a punto y coma.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 22:13.