Ahmed AE Ответов: 1

Как вставить значение с помощью оператора select в mysql ?


У меня есть следующая команда SQL:
select COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
      REFERENCED_TABLE_NAME  = 'persons_data'
  AND REFERENCED_COLUMN_NAME = 'ID'
  AND TABLE_NAME             = 'employees'

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

Что я уже пробовал:

INSERT INTO `mySchema`.`persons_data` (`Name En`, `Address`, `National ID`) 
VALUES 
('Noud', 'Tyjkl', '697851');

INSERT INTO `mySchema`.`employees` 
(select COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
      REFERENCED_TABLE_NAME  = 'persons_data'
  AND REFERENCED_COLUMN_NAME = 'ID'
  AND TABLE_NAME             = 'employees') 
VALUES ( LAST_INSERT_ID());

Я ожидаю, что предыдущий код будет функционировать так же, как следующий, но это не так, я хочу знать, в чем заключается ошибка, которую я сделал?
INSERT INTO `mySchema`.`persons_data` (`Name En`, `Address`, `National ID`) 
VALUES 
('Noud', 'Tyjkl', '697851');

INSERT INTO `mySchema`.`employees` 
(persons_data_ID) 
VALUES ( LAST_INSERT_ID());

CHill60

Что же он на самом деле сделал?

Ahmed AE

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

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

1 Ответов

Рейтинг:
0

Gerry Schmitz

Имена схем не совпадают.

Вы пытаетесь взломать базу данных аптек? Похоже на то. Это незаконно.


Ahmed AE

я не пытаюсь взломать что-либо, пожалуйста, внимательно прочитайте вопрос