Правильный обходной путь - может быть только один столбец TIMESTAMP с CURRENT_TIMESTAMP в предложении DEFAULT или ON UPDATE
У меня есть эта таблица:
CREATE TABLE IF NOT EXISTS news (
id int(11) NOT NULL AUTO_INCREMENT,
data text,
date_published timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
date_edited timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
Дайте мне эту ошибку:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.
Есть более старые сообщения по этой проблеме, но я хочу правильный обход из-за текущей структуры базы данных.
Версия: libmysql - 5.5.41 Работает на: 5.5.41-ubuntu.14.04.1
1 ответ
Решение
Это жесткое ограничение. Делается лучшая ставка date_edited
использование CURRENT_TIMESTAMP
и управление date_published
в вашем приложении.
date_published timestamp NULL DEFAULT NULL,
date_edited timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
Триггеры могут быть альтернативным вариантом, но я стараюсь не полагаться на такие вещи, которые не могут легко контролироваться версиями.