Вы можете захватить server_default, чтобы установить также ОБНОВЛЕНИЕ ВКЛ .:
Column('datemodified', TIMESTAMP,
server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))
Это создает следующую запись в столбце:
datemodified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Однако ответ Mchl по-прежнему применяется: Может бытьтолько один автоматический столбец TIMESTAMP в таблице (http://dev.mysql.com/doc/refman/5.5/en/timestamp.html)
Также обратите внимание, что порядок столбцов важен! Если у вас есть столбец TIMESTAMP без модификаторов DEFAULT и ON UPDATE, и это первый столбец TIMESTAMPв вашей таблице для него автоматически будет установлено значение DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP. (http://dev.mysql.com/doc/refman/5.5/en/timestamp.html)
Так что все в порядке:
Column('datemodified', TIMESTAMP,
server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))
Column('datecreated', TIMESTAMP)
, а это не так:
Column('datecreated', TIMESTAMP)
Column('datemodified', TIMESTAMP,
server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))
Чтобы установить datecreated на текущее время во время первого ввода строки, просто установите его значение явно в NULL. Опять же, из http://dev.mysql.com/doc/refman/5.5/en/timestamp.html:
По умолчанию TIMESTAMPстолбцы NOT NULL, не могут содержать значения NULL, а назначение NULL назначает текущую метку времени.