'созданный в' и 'обновленный в' полях

Это походит на действительно простой, но я изо всех сил пытаюсь понять это. Я хочу столбец в своей базе данных, которая перечисляет, когда запись была сначала создана и другой столбец, в котором говорится, когда это было обновлено. Это - мое понимание, что я должен смочь сделать все это просто использование MySQL. Вся справка ценится :)

Это не воняет все еще никакой ответ, причины, что я уже начинаю пропускать Ruby on Rails...

14
задан mdgrech 4 August 2010 в 20:03
поделиться

3 ответа

Возможно, вам потребуется использовать комбинацию типа данных Datetime и типа данных Timestamp . Я бы установил свой столбец created как DateTime с DEFAULT NOW () , а мой обновленный столбец как отметку времени с DEFAULT CURRENT_TIMESTAMP и атрибутом ON UPDATE CURRENT_TIMESTAMP .

Вот документы для отметки времени dt:

http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

в операторе CREATE TABLE , первый столбец TIMESTAMP может быть объявлен любым из следующих способов:

С предложениями DEFAULT CURRENT_TIMESTAMP и ON UPDATE CURRENT_TIMESTAMP столбец имеет текущую метку времени для своего значения по умолчанию и автоматически обновляется.

Без предложений DEFAULT и ON UPDATE это то же самое, что DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP.

С предложением DEFAULT CURRENT_TIMESTAMP и без предложения ON UPDATE столбец имеет текущую метку времени для своего значения по умолчанию, но не обновляется автоматически.

Без предложения DEFAULT и с предложением ON UPDATE CURRENT_TIMESTAMP столбец имеет значение по умолчанию 0 и автоматически обновляется.

При постоянном значении DEFAULT столбец имеет заданное значение по умолчанию и не инициализируется автоматически текущей меткой времени. Если столбец также имеет предложение ON UPDATE CURRENT_TIMESTAMP, он обновляется автоматически; в противном случае он имеет постоянное значение по умолчанию и не обновляется автоматически.

7
ответ дан 1 December 2019 в 15:20
поделиться

Если вы не можете использовать поля отметок времени с атрибутами по умолчанию, которые предложил Пол В., вы можете использовать триггеры AFTER INSERT и AFTER UPDATE для заполнения полей.

0
ответ дан 1 December 2019 в 15:20
поделиться

Вам понадобятся два поля "Created" и "Updated" с типом datetime. Когда вставляется новая запись, то вставьте "Created" с текущей отметкой времени. Когда происходит обновление, вставьте "Обновлено" с текущей отметкой времени, а поле "Создано" пусть остается как как есть.

Для текущей отметки времени вы можете использовать NOW() в запросе mysql.

0
ответ дан 1 December 2019 в 15:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: