Внешний ключ возвращает пустой набор результатов - PullRequest
0 голосов
/ 29 мая 2020

Я создал внешний ключ для связи двух таблиц:

  1. Адреса моих пользователей (внешний ключ)
  2. Данные для входа в систему (первичный ключ).

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

У меня нет большого опыта работы с MySQL, поэтому ошибка может быть чем-то тривиальным, однако Сам не могу найти решение. Я использую PHP процедурный.

Вот образец моей базы данных:

Таблица адресов, содержащая внешний ключ:

1   id Primary          int(11)         No  None        AUTO_INCREMENT      
2   address_fk Index    int(11)         No  None            
3   address_line_one    varchar(25) utf8_general_ci     No  None                
4   address_line_two    varchar(25) utf8_general_ci     No  None    

Данные пользователя с первичным ключом:

1   id Primary      int(11)         No             None     AUTO_INCREMENT      
2   user_email      varchar(320)    utf8_general_ci     No  None            
3   user_password   char(60)        utf8_general_ci     No  None    

Любые рекомендации приветствуются.

1 Ответ

0 голосов
/ 29 мая 2020

Внешний ключ в дочерней таблице должен ссылаться на существующий столбец первичного ключа в родительской таблице. Если ваш первичный ключ - это столбец ID в таблице User Details , вашим внешним ключом будет столбец ID в таблице Addresses, поскольку он будет указывать на столбец ID в вашей родительской таблице.

Текущая настройка указывает столбец address_fk в качестве внешнего ключа; однако в таблице Сведения о пользователе нет такого столбца, на который он мог бы указывать.

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