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

[SOLUCIONADO] Duda con disparador

Estas en el tema de Duda con disparador en el foro de Mysql en Foros del Web. Como dice el titulo tengo la siguiente duda, tengo una tabla con 5 campos donde se pueden actualizar cualquiera o todos. Bien, entonces cuando actualizan ...
  #1 (permalink)  
Antiguo 26/12/2017, 11:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 6 meses
Puntos: 10
Duda con disparador

Como dice el titulo tengo la siguiente duda, tengo una tabla con 5 campos donde se pueden actualizar cualquiera o todos. Bien, entonces cuando actualizan inserto el registro viejo en otra tabla con el disparador. El problema lo tengo cuando solo actualizan un campo,podría hacer un condicional para insertar un valor null en el caso que ese campo no sea actualizado.
Pero de esta forma quedan muchos campos vacios.
Como se hace este tipo de sistemas?
  #2 (permalink)  
Antiguo 26/12/2017, 11:49
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.404
Antigüedad: 13 años, 2 meses
Puntos: 774
Respuesta: Duda con disparador

Facil, en lugar de null cuando se haga una actualizacion de solo un campo inserta el valor actual ;) y en el campo que se cambio el valor nuevo
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 26/12/2017, 12:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 6 meses
Puntos: 10
Respuesta: Duda con disparador

A
Cita:
Iniciado por Libras Ver Mensaje
Facil, en lugar de null cuando se haga una actualizacion de solo un campo inserta el valor actual ;) y en el campo que se cambio el valor nuevo
Pero que forma es mejor, como lo haceis vosotros ese tipo de cosas,de la forma que propones quedan muchos datos igual en ese aspecto es mejor dejar el campo en null o no?
  #4 (permalink)  
Antiguo 26/12/2017, 12:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.404
Antigüedad: 13 años, 2 meses
Puntos: 774
Respuesta: Duda con disparador

Ahora, para que guardas ese valor?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 26/12/2017, 12:30
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 6 meses
Puntos: 10
Respuesta: Duda con disparador

Guardo ese valor para saber las modificaciones que se han echo y no perder datos aunque sean antiguos.
  #6 (permalink)  
Antiguo 26/12/2017, 13:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.404
Antigüedad: 13 años, 2 meses
Puntos: 774
Respuesta: Duda con disparador

entonces lo mas facil es hacer una bitacora, cuando se hace un update guardas la fecha del update, mas el campo que se actualizo, podrias guardar el valor anterior y el valor nuevo, aqui no importa que tengas informacion repetida, ya que esta tabla no es parte de tu diagrama entidad relacion
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 26/12/2017, 15:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 6 meses
Puntos: 10
Respuesta: Duda con disparador

Cita:
Iniciado por Libras Ver Mensaje
entonces lo mas facil es hacer una bitacora, cuando se hace un update guardas la fecha del update, mas el campo que se actualizo, podrias guardar el valor anterior y el valor nuevo, aqui no importa que tengas informacion repetida, ya que esta tabla no es parte de tu diagrama entidad relacion
Pero uno de los campos es tipo texto entonces tendria que crear el campo tipo texto y la mayoria de veces guardaria valores de 10 o 15 caracteres.

Alguna sugerencia,esque quiero tenerlo claro y me quedan dudas.
  #8 (permalink)  
Antiguo 26/12/2017, 15:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.404
Antigüedad: 13 años, 2 meses
Puntos: 774
Respuesta: Duda con disparador

y cual es el problema de guardar caracteres tipo texto?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 26/12/2017, 15:35
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 6 meses
Puntos: 10
Respuesta: Duda con disparador

Me refiero crear un campo tipo text.No se muy bien pero no creo que sea bueno crear un campo tipo texto para guardar pocos caracteres.
O estoy equivocado?
  #10 (permalink)  
Antiguo 26/12/2017, 17:10
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 6 meses
Puntos: 10
Respuesta: Duda con disparador

es una buena idea crear dos tablas para la bitacora, una para guardar los campos mas cortos con un varchar y otra con un text para guardar solo los textos, el campo texto es de 1000 caracteres no se si tambien podria crear un varchar con esa longitud y ahorrarme crear tantas tablas.

cualquier aclaracion de los mas expertos vendria bien.
  #11 (permalink)  
Antiguo 27/12/2017, 08:23
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.404
Antigüedad: 13 años, 2 meses
Puntos: 774
Respuesta: Duda con disparador

Para que crear 2 tablas, varchar te soporta perfectamente 1000 caracteres, te estas complicando demasiado para un tema que esta por demas documentado

http://tavoberry.com/blog/crear-una-bitacora-en-mysql/
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 27/12/2017, 16:57
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.198
Antigüedad: 8 años, 6 meses
Puntos: 10
Respuesta: Duda con disparador

Hola tienes razon la verdad que con mil o dos mil caracteres creia que se tenia que crear un campo de tipo texto pero ahora veo que con un varchar tengo de sobra porque text soporta 65000 es demasiado.

Gracias Libras.

Etiquetas: campo, disparador, ip, registro, tabla
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:55.