Mysql создает индекс вместо ограничения внешнего ключа

0

Я пытаюсь создать ограничение внешнего ключа между двумя таблицами, но после выполнения команды alter mysql создает индекс вместо внешнего ключа.

Я использую hibernate, поэтому изначально я думал, что это проблема спящего режима, но когда я выполняю запрос непосредственно на поведение mysql, это то же самое.

alter table person добавить ограничение FK9ircw28d19mdg5pu8yfg1qs8p адрес внешнего ключа (Address_Id) Адрес (Address_Id)

После выполнения этой команды я получаю следующее в базе данных mysql

Изображение 174551

Как видите, ограничение добавляется в индексы, а не как внешний ключ.

Hibernate выполняет следующие запросы при создании таблиц:

Hibernate: отбрасывать таблицу, если существует Адрес

Hibernate: drop table if exists hibernate_sequence

Спящий режим: выпадающий стол, если существует человек

Hibernate: create table Address (Address_Id bigint not null, addressLine1 varchar (255), addressLine2 varchar (255), city varchar (255) не null, страна varchar (255) не null, state varchar (255) не null, первичный ключ ( Address_Id)) engine = MyISAM

Hibernate: создать таблицу hibernate_sequence (next_val bigint) engine = MyISAM

Спящий режим: вставить в значения hibernate_sequence (1)

Спящий режим: вставить в значения hibernate_sequence (1)

Hibernate: create table person (Person_Id bigint not null, dob date not null, имя varchar (255) не null, Address_Id bigint, первичный ключ (Person_Id)) engine = MyISAM

Hibernate: изменить таблицу лица добавить ограничение FK9ircw28d19mdg5pu8yfg1qs8p внешний ключ (Address_Id) ссылки Адрес (Address_Id)

  • 0
    Что именно я смотрю? Опубликуйте шоу, создайте таблицу вывода, пожалуйста.
  • 1
    MyISAM не поддерживает внешние ключи . Используйте InnoDB.
Показать ещё 1 комментарий
Теги:
indexing
foreign-keys

1 ответ

0
Лучший ответ

Спасибо @Solarflare. Это решило мою проблему. Проблема: механизм MyISAM не поддерживает внешние ключи. Как только я изменил тип двигателя на InnoDB, все работало, как ожидалось.

Ещё вопросы

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