ОШИБКА 1067 Недопустимое значение по умолчанию для created_at. - PullRequest
0 голосов
/ 18 июня 2020

Я создаю таблицу со следующим сценарием

CREATE TABLE `ninjapizza`.`products` (
  `ID` INT NOT NULL AUTO_INCREMENT,
  `Name` VARCHAR(45) NULL,
  `description` VARCHAR(45) NULL,
  `email` VARCHAR(45) NULL,
  `created_on` TIMESTAMP(2) NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID`));

Но при применении я получаю следующее сообщение

Operation failed: There was an error while applying the SQL script to the database.
Executing:
CREATE TABLE `ninjapizza`.`products` (
  `ID` INT NOT NULL AUTO_INCREMENT,
  `Name` VARCHAR(45) NULL,
  `description` VARCHAR(45) NULL,
  `email` VARCHAR(45) NULL,
  `created_on` TIMESTAMP(2) NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID`));

ERROR 1067: Invalid default value for 'created_on'
SQL Statement:
CREATE TABLE `ninjapizza`.`products` (
  `ID` INT NOT NULL AUTO_INCREMENT,
  `Name` VARCHAR(45) NULL,
  `description` VARCHAR(45) NULL,
  `email` VARCHAR(45) NULL,
  `created_on` TIMESTAMP(2) NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID`))

Я также выполнил следующую команду

SET sql_mode = 'ALLOW_INVALID_DATES';

Но все равно появляется ошибка. Может кто-нибудь, пожалуйста, направьте.

1 Ответ

0 голосов
/ 18 июня 2020

'Если определение столбца TIMESTAMP или DATETIME где-либо включает явное значение точности дробных секунд, то же значение должно использоваться во всем определении столбца' https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html

SEE https://www.db-fiddle.com/f/sNoeVP5PATCsGxhVw2vPki/0

...