Al explicar las marcas de tiempo de MySQL fila específica

votos
0

Quiero añadir en la fila de marca de tiempo jailtime. Esa marca de tiempo sería la marca de tiempo cuando pjailed fila se actualizó.

He intentado hacer el barbecho:

https://dba.stackexchange.com/questions/45470/get-the-time-of-last-update-of-a-column

Pero en lugar de crear la tabla, quería alterar la tabla existente, así que fui para

ALTER TABLE `users` 
CHANGE `jailtime` `jailtime` TIMESTAMP 
ON UPDATE CURRENT_TIMESTAMP NULL 
DEFAULT 'updated_at pJailed';

Pero me da error Valor no válido para pJailed

Publicado el 19/09/2018 a las 17:14
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Si el valor de pJaileduna fila se actualiza esa fila entera recibe una actualización. Por lo tanto, bastaría con usar ON UPDATE CURRENT_TIMESTAMP(y DEFAULT CURRENT_TIMESTAMP) en jailtime.

Se puede modificar la columna jailtimepara reflejar esta usando:

ALTER TABLE your_table
 MODIFY COLUMN jailtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

Editar: OP menciona en su comentario que el atributo jailtimesólo debe ser actualizado cuando el atributo pJailedse actualiza. Para lograr esto, uno debe utilizar un disparador tal como se describe aquí .

Respondida el 19/09/2018 a las 17:30
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more