Код ошибки: 3734. Не удалось добавить ограничение внешнего ключа

#mysql

#mysql

Вопрос:

Работаю над небольшой базой данных, собирающей новые версии в разных странах. Все работало нормально, пока я не изменил название Country на countryRel . он начал выдавать этот код ошибки Код ошибки: 3734.

Я уже перепробовал большинство других онлайн-справок, которые я могу найти (например, сделать первичный ключ уникальным), а также возился с переменными (добавляя новые или удаляя их, чтобы увидеть, что изменилось, обычно это просто выдает эту ошибку Код ошибки: 1822) Я поместил свой кодвозвращаясь к тому, как я хочу, я бы в основном хотел, чтобы это осталось. есть идеи?

 create table countries ( counId int unique, countryName varchar(15), primary key(counId));
insert into countries Values (1, 'Japan'),(2, 'America'),(3,'England'),(4,'Germany'),(5,'Canada'),(6,'China');
select * from countries;

drop table countryRel;

create table countryRel (novelId int, counId int, releaseDate date, foreign key(novelId) references 
Lightnovel(novelId), foreign key(counId) references countries(counId));
insert into countryRel values (1, 1, '2019-1-17'),(2, 1, '2019-1-17'),(3, 1, '2019-5-17'),(4, 1, '2019-1-17'),
(5, 1, '2019-1-17'),(6, 1, '2019-1-01'),(7, 1, '2019-1-01'),(8, 1, '2019-2-09'),(9, 1, '2019-2-09'),(1, 2, '2019-9-17'),
(2, 2, '2019-9-20'),(3, 2, '2019-10-10'),(4, 2, '2019-11-21'),(5, 2, '2019-8-04'),(6, 2, '2019-08-04'),
(7, 2, '2019-1-01'),(8, 2, '2019-11-21'),(9, 2, '2019-9-14'),(1, 3, '2019-9-17'),(2, 3, '2019-9-20'),
(3, 3, '2019-10-10'),(4, 3, '2019-11-21'),(5, 3, '2019-8-04'),(6, 3, '2019-08-04'),(7, 3, '2019-1-01'),
(8, 3, '2019-11-21'),(9, 3, '2019-9-14');
  

Это должно создать небольшой список таблиц из 1-6 перечисленных стран. Затем, используя counId в качестве основного модуля, передайте его в CountryRel для использования в перечисленных таблицах.

Комментарии:

1. Вам необходимо создать Lightnovel таблицу, прежде чем вы сможете создать countryRel таблицу dbfiddle.uk /…

2. мой плохой, я поделился только тем, что было подходящим кодом, у меня есть таблица lightnovel, и я не чувствовал, что это поможет в этом обсуждении.

3. здесь: создайте таблицу Lightnovel (authId int, novelId int, ТЕКСТ заголовка, ТЕКСТ описания, издатель varchar(45), дата выпуска, первичный ключ (novelId), внешний ключ (authId) ссылается на автора (authId));

4. Это не помогает, поскольку ссылается на другую таблицу author , для которой вы не дали определения. Мы не сможем помочь вам решить вашу проблему, если вы не предоставите нам всю необходимую информацию.

5. создайте таблицу author(authId int, FirstName varchar(30), LastName varchar(30), nationality varchar(15), дата первого выпуска, booknum int, первичный ключ (authId));

Ответ №1:

Я проверил и обнаружил, что вы добавляете 2 внешних ключа, но вы не отправили определение таблицы для второго (Lightnovel), если я удаляю этот сценарий внешнего ключа, он работает нормально. Пожалуйста, добавьте таблицу Lightnovel, тогда все будет работать нормально.

Комментарии:

1. все еще пытаюсь найти лучший способ использовать систему комментариев переполнения стека (с двумя из них) вот моя таблица, я не добавил ее в эту тему, потому что я не чувствовал, что это уместно для обсуждения (моя ошибка): here: create table Lightnovel (authId int, novelId int, titleТЕКСТ, описание ТЕКСТА, издатель varchar(45), дата выпуска, первичный ключ (novelId), внешний ключ (authId) ссылается на автора (authId));