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

sisntaxis de trigger

Estas en el tema de sisntaxis de trigger en el foro de Mysql en Foros del Web. miren foreros tengo un detalle en una tabla inserto fecha cantidad dia entonces al insertar necesito que se inserte el numero de dia del dia ...
  #1 (permalink)  
Antiguo 31/12/2010, 12:11
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
sisntaxis de trigger

miren foreros tengo un detalle en una tabla inserto
fecha
cantidad
dia

entonces al insertar necesito que se inserte el numero de dia del dia o sea mysql dice
0=lunes 1=martes 2=miercoles
entonces yo necesito insertar el numero de dia pero de la fecha que se encuentra en el formulario php y yo pienso que se puede hacer con un trigger o en un insert puedo hacer esto?
Código:
insert into tabla values('2010-12-01','2',select weekday('2010-12-01') );
o digo tabien hacer esto otro
Código:
create trigger numerodia after insert on ocupacion
on each row begin
  insert into ocupacion set dia=select weekday('FECHA_OCUPACION');
end
delimiter ;
  #2 (permalink)  
Antiguo 31/12/2010, 14:37
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: sisntaxis de trigger

Hola.

O por que no solo haces:
insert into tabla values('2010-12-01','2', weekday('2010-12-01') );

Sin el select.

Suerte.
  #3 (permalink)  
Antiguo 31/12/2010, 17:08
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: sisntaxis de trigger

Código MySQL:
Ver original
  1. DELIMITER $$
  2. CREATE TRIGGER numerodia AFTER INSERT ON ocupacion
  3. INSERT INTO ocupacion SET dia=SELECT WEEKDAY('FECHA_OCUPACION');
  4. END$$
  5. DELIMITER;
Este TRIGGER no se puede hacer porque estás realizando una operación DML sobre la misma tabla que tiene el trigger. Eso no es posible en MySQL, ya que la tabla está bloqueada.
Corresponde usar:
Código MySQL:
Ver original
  1. DELIMITER $$
  2. CREATE TRIGGER numerodia AFTER INSERT ON ocupacion
  3. SET NEW.dia=WEEKDAY('FECHA_OCUPACION');
  4. END$$
  5. DELIMITER;
Pero, como te dijeron antes, es más simple:
Código MySQL:
Ver original
  1. INSERT INTO ocupacion VALUES('2010-12-01', 2, WEEKDAY('2010-12-01') );
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 31/12/2010 a las 17:26
  #4 (permalink)  
Antiguo 01/01/2011, 10:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: sisntaxis de trigger

muchas gracias gnzsoloyo y lair sus respuestas me fucnionaron ambas

Etiquetas: trigger
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:30.