Объяснение временных отметок mysql определенной строки

0

Я хочу добавить в строчку "jailtime" timestamp. Эта метка времени была бы меткой времени, когда была обновлена строка "pjailed".

Я попытался сделать следующее:

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

Но вместо создания таблицы я хотел изменить существующую таблицу, поэтому я пошел

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

Но это дает мне ошибку "Недопустимое значение для pJailed"

  • 0
    Это строковое значение, которое не является временной меткой, поэтому его нельзя использовать, потому что это недопустимое значение, как говорится в ошибке.
  • 0
    Я удалил тег PHP, так как он не связан с вопросом.
Теги:

1 ответ

0
Лучший ответ

Если значение для pJailed для строки обновляется, вся целая строка получает обновление. Таким образом, было бы достаточно использовать ON UPDATE CURRENT_TIMESTAMPDEFAULT CURRENT_TIMESTAMP) в jailtime.

Вы можете изменить время jailtime столбца, чтобы отразить это, используя:

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

Edit: OP упоминает в своем комментарии, что время jailtime атрибута должно обновляться только тогда, когда обновляется атрибут pJailed. Для этого нужно использовать триггер, как описано здесь.

  • 0
    Я попробовал, и работает отлично. Но я также обновил строку «Username», а строку «jailtime» изменили со временем модификации «username». Я бы хотел, чтобы этот тюремный срок был привязан только к тюрьме. pJailed - это тип INT, и я не могу добавить «Неверное предложение ON UPDATE для столбца« pJailed »»
  • 0
    @AlxTioltisan вам нужно будет использовать триггер для этого. Пожалуйста, проверьте этот ответ на другой вопрос для получения дополнительной информации.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню