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

2 columnas en mysql del tipo timestamp

Estas en el tema de 2 columnas en mysql del tipo timestamp en el foro de Mysql en Foros del Web. Buenas, vereis necesitaria tener 2 campos o columnas en una de las tablas de la base de datos del tipo "Timestamp", 1 para la fecha ...
  #1 (permalink)  
Antiguo 16/03/2011, 11:25
 
Fecha de Ingreso: mayo-2008
Ubicación: España
Mensajes: 130
Antigüedad: 16 años, 7 meses
Puntos: 3
2 columnas en mysql del tipo timestamp

Buenas, vereis necesitaria tener 2 campos o columnas en una de las tablas de la base de datos del tipo "Timestamp", 1 para la fecha en la que el usuario ha creado el registro, y otra que se actualizara con la fecha en la que el usuario ha actualizado el registro.
El problema es que mysql no me deja pues por lo que entiendo me advierte de que no puede haber más de 1 columna de este tipo. La pregunta es de que si hay alguna forma de hacerlo o tengo que buscar otra solución. Gracias
  #2 (permalink)  
Antiguo 16/03/2011, 11:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: 2 columnas en mysql del tipo timestamp

No existe una limitación de ese tipo en MySQL.
Por ejemplo, esta tabla la he creado hace un instante para probar lo que dices, y funciona perfectamente:
Como puedes apreciar, ambos campos son timestamp (incluso el primero es una PK), así que ese no es el problema.
¿Podría postear la consulta que usas tú para crear la tabla?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/03/2011, 12:00
 
Fecha de Ingreso: mayo-2008
Ubicación: España
Mensajes: 130
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: 2 columnas en mysql del tipo timestamp

Sencillamente intento cambiar el tipo de un campo, ahora me he dado cuenta que si cambio solamente el tipo a "Timestamp" si me deja, es al indicar el atributo "on update CURRENT_TIMESTAMP" que phpmyadmin me lanza el siguiente error:

Código PHP:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause 
Muchas gracias por tu ayuda.
  #4 (permalink)  
Antiguo 16/03/2011, 12: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: 17 años
Puntos: 2658
Respuesta: 2 columnas en mysql del tipo timestamp

El problema no es el tipo de columna, es decir que no es que no se pueda crear dos columnas con ese tipo, sino que DEFAULT CURRENT_TIMESTAMP no se puede asignar a dos columnas de la misma tabla:
Cita:
there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
¡Traducir!:
Cita:
...sólo puede haber una columna con CURRENT_TIMESTAMP en DEFAULT o en cláusula ON UPDATE..
En todo caso lo que debes hacer es gestionar el valor que adoptará el campo o por programación, o bien por un TRIGGER

Razónalo así: Si CURRENT_TIMESTAMP devuelve el TIMESTAMP del instante en que se ejecuta, el delay posible entre actualizar la columna 1 y la columna 2 puede hacer que al menos uno de los dos valores no sea realmente el instante actual al momento de ocurrir. ¿Cómo puede resolver eso MySQL?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 16/03/2011, 12:42
 
Fecha de Ingreso: mayo-2008
Ubicación: España
Mensajes: 130
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: 2 columnas en mysql del tipo timestamp

Muchas gracias por la explicación. Quiza inserte los datos por programacion (no tengo practica con los triggers), por lo menos en el campo que indica cuando se ha creado el registro.
Supongo que no habrá ningún problema al insertar la fecha en un campo con formato texto desde php y luego, a la hora de leer el campo pasar dicha fecha a formato unix.

Un saludo.
  #6 (permalink)  
Antiguo 16/03/2011, 12:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: 2 columnas en mysql del tipo timestamp

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: columnas, timestamp, tipo
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:58.