Я получаю сообщение об ошибке «невозможно добавить или обновить дочернюю строку», и я не могу понять, что я делаю неправильно или как решить проблему. Поле id во всех трех таблицах было установлено как уникальное и с автоматическим приращением, поэтому я подумал, что если 'slect * from (...) tbltmp' не вернет значение, то он автоматически назначит новое значение при вставке данные.
INSERT INTO schedule (id, employee_id, project_id, project_phase, year_week, hours)
VALUES(
(SELECT * FROM(
SELECT schedule.id
FROM schedule
JOIN employees on employees.id = schedule.employee_id
WHERE employees.Employee=?
AND schedule.project_phase=?
AND schedule.year_week=?)
tbltmp),
(SELECT id
FROM employees
WHERE Employee=?),
(SELECT MIN(pID)
FROM projects
WHERE pNUM = ?
AND pPhase = ?),
?,
?,
?)
ON DUPLICATE KEY UPDATE hours=?'
это то, что говорит ошибка
'Cannot add or update a child row: a foreign key constraint fails (`projectscheduler`.`schedule`, CONSTRAINT `employee_id` FOREIGN KEY (`id`) REFERENCES `employees` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)'
любая помощь по этому вопросу была бы потрясающей.