В MYSQL при добавлении столбца первичного ключа в существующую таблицу я получаю ошибку 1795 (hy000) - PullRequest
0 голосов
/ 08 февраля 2019

Я новичок в этой платформе, поэтому, если я сделаю какую-либо ошибку, простите меня.

В MYSQL 8.0 я пытаюсь добавить первичный ключ с помощью следующей команды:

ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;

ОШИБКА 1795 (HY000): InnoDB в настоящее время поддерживает создание одного индекса FULLTEXT ввремя

в чем может быть решение

Я пробовал это

ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ALGORITHM=COPY;

, но получил следующую ошибку

ОШИБКА 1264(22003): Значение за пределами диапазона для столбца 'столбцы' в строке 167

это моя существующая таблица

CREATE TABLE `TELECOM_NUMBER` (
  `CONTACT_MECH_ID` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `COUNTRY_CODE` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `MOBILE_NUMBER` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `AREA_CODE` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `CONTACT_NUMBER` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `ASK_FOR_NAME` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `LAST_UPDATED_STAMP` datetime DEFAULT NULL,
  `LAST_UPDATED_TX_STAMP` datetime DEFAULT NULL,
  `CREATED_STAMP` datetime DEFAULT NULL,
  `CREATED_TX_STAMP` datetime DEFAULT NULL,
  KEY `INX_TELECOM` (`CONTACT_MECH_ID`),
  FULLTEXT KEY `TELECOM_NUMBER_FT` (`CONTACT_NUMBER`),
  FULLTEXT KEY `TELECOM_NUMBER_FTS` (`CONTACT_NUMBER`,`MOBILE_NUMBER`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 

Обновление: это решение сработало, но все еще тестирует, что всеотлично.

https://stackoverflow.com/a/43820504/10862513

изменение механизма хранения.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Сначала необходимо добавить столбец, а затем добавить ограничение с помощью команды ADD CONSTRAINT.Сделайте это следующим образом: -

1) ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT;

2) ALTER TABLE TELECOM_NUMBER ADD CONSTRAINT primary_key_constraint_name PRIMARY KEY (pk_id);

Надеюсь, это поможет.

0 голосов
/ 08 февраля 2019

Попробуйте написать первичный ключ до AUTO_INCREMENT, как показано ниже:

ALTER TABLE TELECOM_NUMBER ADD pk_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT;
...