невозможно добавить или обновить дочернюю ошибку строки с временной таблицей? - PullRequest
0 голосов
/ 30 января 2020

Я получаю сообщение об ошибке «невозможно добавить или обновить дочернюю строку», и я не могу понять, что я делаю неправильно или как решить проблему. Поле 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)'

любая помощь по этому вопросу была бы потрясающей.

1 Ответ

0 голосов
/ 30 января 2020

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

Проверьте внешние ключи в родительской таблице.

...