У меня есть таблица, как показано ниже. Для того, чтобы обойти один по умолчанию теперь ограничение столбца MySQL я использовал наконечник, как показано hereMySQL двухстоечная метка времени по умолчанию Значение NOW ERROR 1067
CREATE TABLE IF NOT EXISTS mytable (
id INT NOT NULL AUTO_INCREMENT ,
create_date TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00' ,
update_date TIMESTAMP NULL DEFAULT NOW() ON UPDATE NOW() ,
PRIMARY KEY (`parti_id`))
ENGINE = InnoDB;
Мой sql_mode не включает NO_ZERO_DATE
как указано here мой вывод:
mysql> SELECT @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
1 row in set (0.00 sec)
Он по-прежнему дает ошибка, как показано ниже:
ERROR 1067 (42000) at line xx in file: '/myschema.sql': Invalid default value for 'create_date'
Я использую MySQL 5.1.37 на Ubuntu
Как это исправить? Благодарю.
Это не ошибка, это особенность: «Для одного столбца TIMESTAMP в таблице, вы можете присвоить текущую метку время в качестве значения по умолчанию и значения автоматического обновления . Возможно, текущая временная метка является значением по умолчанию для инициализации столбца, для значения автоматического обновления или для обоих. Невозможно, чтобы текущая временная метка была значением по умолчанию для одного столбца и значением автоматического обновления для другого столбца. » –
Дебаты о том, является ли это« ошибкой »или нет, поскольку это серьезно раздражает. Почему у меня нет двух столбцов временной отметки со значением по умолчанию now() со вторым обновлением столбца? Ответ заключается в том, что MySQL этого не делает. Я действительно не называю эту функцию. –
Рэнди благодарит за ответ. Я знаю ссылку, которую вы предоставили. Я просто ищу обходной путь. Однако кажется, что все трюки, показанные в Интернете, просто не работают. –