при вставке current_timestamp в mysql

Мне нужно изменить столбец с типом данных timestamp. Дело в том, что при вставке записи в этот столбец должна быть вставлена ​​текущая метка времени. Я знаю, что есть ON UPDATE CURRENT_TIMESTAMP, но для вставки я не могу найти способ.


person Rock 'em    schedule 24.01.2013    source источник


Ответы (3)


То, что вы ищете, это ключевое слово DEFAULT.

ALTER TABLE yourTable MODIFY COLUMN yourColumn timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
person fancyPants    schedule 24.01.2013
comment
Я знаю, что ON UPDATE можно использовать. Мне нужно что-то вроде этого: изменить таблицу TAB_NAME, добавить столбец COL_NAME timestamp default current_stamp ON INSERT (???????) current_timestamp - person Rock 'em; 25.01.2013
comment
значение по умолчанию IS при вставке. вы не указываете значение при вставке, и столбец будет иметь значение по умолчанию. просто как тот. - person fancyPants; 25.01.2013
comment
да, это нормально для 1-й вставки. Если я позже вставлю какую-либо запись в эту таблицу, время вставки записи также должно быть вставлено в столбец, что должно происходить по умолчанию. надеюсь не путаю - person Rock 'em; 06.02.2013
comment
Да вы путаете. Вы имеете в виду, что такое же время должно быть в другом столбце той же таблицы? У вас есть проблемы с получением времени из столбца отметки времени? Вы знаете, что есть функция TIME(yourTimeStampColumn) и многое другое? - person fancyPants; 06.02.2013
comment
NAME TIME xxxx 201-01-01 10:02:12 // это время, когда я вставляю запись yyyy // здесь время должно быть вставлено в столбец TIME, когда я вставляю 'yyyy' - person Rock 'em; 22.02.2013
comment
Я действительно не знаю, в чем твоя проблема. INSERT INTO yourTable (Name) VALUES ('xxxx'); Сделайте эту вставку, и в столбце времени будет время, когда вы делаете вставку. yourColumn в моем ответе, конечно, ваша колонка времени. Попробуй... - person fancyPants; 22.02.2013

Чего хотели Rock 'Em, так это использовать CURRENT_TIMESTAMP в качестве значения по умолчанию для столбца. Не в обновлении. Я использую это все время. Таким образом, когда запись вставляется, вы точно знаете, когда это произошло. Во многих таблицах рекомендуется делать это для отслеживания аудита и т. д.

person John Marno    schedule 19.06.2017

Просто используйте предложение DEFAULT, игнорируя предложение ON UPDATE, это должно работать для вас!

ALTER TABLE yourTable MODIFY COLUMN yourColumn timestamp DEFAULT CURRENT_TIMESTAMP
person Amol Fasale    schedule 13.07.2018