Mysql сгенерированный запрос столбца работает на локальном хосте, но не работает на живом сервере - PullRequest
0 голосов
/ 01 августа 2020

Мой запрос:

Create table com (
    Share int(10),
    Fee int(10)
);
Alter table com add column comm int GENERATED ALWAYS AS (2*share-fee) STORED;

Я также пытаюсь создать столбец при создании таблицы, но не работает с той же ошибкой # 1064

1 Ответ

0 голосов
/ 01 августа 2020

Часто локально установленные версии MySQL являются более поздними, чем версии, поддерживаемые службами хостинга. Это ваша проблема.

Обычно службы производственных баз данных работают на старых версиях программного обеспечения. Зачем? Базы данных (данные) обычно имеют более длительный срок полезного использования, чем версии программного обеспечения баз данных. Многие базы данных содержат данные, которым много лет. Обновление программного обеспечения с сохранением целостности данных может оказаться сложной задачей, связанной с планированием, тестированием и простоями. Иногда люди просто предпочитают продолжать использовать старые версии программного обеспечения, чтобы избежать работы и риска.

Версии 5.6, которая не поддерживает столбцы GENERATED ALWAYS, более семи лет. 5.7 и более поздние версии поддерживают его. Попросите свою службу хостинга обновить MySQL до более поздней версии. Или попросите их перенести вашу учетную запись на более современный сервер в рамках их службы. Или получите другую, более современную услугу хостинга.

Всегда развертывайте новые проекты на последней производственной версии программного обеспечения баз данных, если это возможно. Это даст вам больше времени, прежде чем вы будете вынуждены выполнить обновление.

А пока вы можете избежать такого рода проблем с развертыванием. Убедитесь, что ваша разрабатываемая версия совпадает с производственной версией. @GMB указал, что запрос SELECT VERSION() сообщает вам, какая версия работает.

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