MySql - код ошибки: 1215. Невозможно добавить ограничение внешнего ключа, если добавлен полнотекстовый индекс

0

У меня есть база данных, и я взял дамп, используя --no-data. Я пытаюсь импортировать эту структуру БД в пустой БД.

Я игнорирую другие запросы, следуя запросам, которые я пытаюсь выполнить,

set foreign_key_checks=0;
DROP TABLE IF EXISTS 'ACTIVITY';
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE 'ACTIVITY' (
  'ID' int(11) NOT NULL AUTO_INCREMENT,
  ...
  'ACTIVITY_BY_ID' int(11) DEFAULT NULL,
  'ENTITY_TYPE' varchar(45) COLLATE utf8_unicode_ci NOT NULL, -- this
  'ACTIVITY_TYPE' varchar(45) CHARACTER SET utf8 NOT NULL, -- this
  ...
  PRIMARY KEY ('ID'),
  KEY 'FK_ACTIVITY_TO_USER_idx' ('ACTIVITY_BY_ID'),
  FULLTEXT KEY 'FK_FULL_TEXT_ACTIVITY_TYPE' ('ACTIVITY_TYPE'), 
  FULLTEXT KEY 'FK_FULL_TEXT_ENTITY_TYPE' ('ENTITY_TYPE'), 
  ...
  CONSTRAINT 'FK_ACTIVITY_TO_USER' FOREIGN KEY ('ACTIVITY_BY_ID') REFERENCES 'USER' ('ID') ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Вышеприведенный код не Error Code: 1215. Cannot add foreign key constraint

Он должен работать, поскольку foreign_key_checks установлен в 0.

Ниже приведен код sql для импорта таблицы USER. Однако этот sql выполняется позже.

DROP TABLE IF EXISTS 'USER';

/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE 'USER' (
  'ID' int(11) NOT NULL AUTO_INCREMENT,
  ...
  PRIMARY KEY ('ID'),
  ..
) ENGINE=InnoDB AUTO_INCREMENT=4070 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Если я сначала выполнил сценарий USER а затем ACTIVITY, он работает, иначе это не так.

Строки, отмеченные знаком --this для таблицы ACTIVITY, вызывают проблему. Если я удалю две строки, код работает нормально.

Почему полнотекстовый индекс создает проблему с внешним ключом?

Теги:
database
foreign-keys
full-text-indexing

1 ответ

0

По-видимому, это была ошибка в сообществе сообщества mysql версии 5.7.8-rc.

Мы повысились до 5.7.20 и это было решено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню