В чем проблема с этой командой sql CREATE TABLE? - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь переместить схему из mysql5.6 в mysql5.5 .

Я экспортировал схему из v5.6 в файл .sql, и при попытке импортировать файл в v5.5 я получаю сообщение об ошибке, но я не знаю, что это за ошибка, так как sql сообщает обо всех ошибках как error in sql syntax.
Вот моя команда create, я надеюсь, кто-нибудь поможет разобраться, что происходит не так? Ошибка только в этой команде создания, поэтому здесь размещена только соответствующая часть

DROP TABLE IF EXISTS `status_change_logs`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `status_change_logs` (
  `entry_id` int(11) NOT NULL AUTO_INCREMENT,
  `match_id` int(11) NOT NULL,
  `status` smallint(4) NOT NULL,
  `timestamp` datetime(4) NOT NULL,
  PRIMARY KEY (`entry_id`),
  KEY `match_id` (`match_id`)
) ENGINE=InnoDB AUTO_INCREMENT=102273 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

Ошибка

ERROR 1064 (42000) at line 897: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(4) NOT NULL,
  PRIMARY KEY (`entry_id`),
  KEY `match_id` (`match_id`)
) ENGINE' at line 5

Operation failed with exitcode 1

1 Ответ

1 голос
/ 18 июня 2020

Я считаю, что тип datetime не принимает размер в скобках, т.е. он должен быть

`timestamp` datetime NOT NULL,

вместо

`timestamp` datetime(4) NOT NULL,

, по крайней мере, для более старых версий MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...