#php #mysql #sql
#php #mysql #sql
Вопрос:
Итак, я пытаюсь добавить информацию в таблицу в phpMyAdmin, но это не позволит мне «добавить или обновить дочернюю строку» с кодом ошибки # 1452.
INSERT INTO tblBooking (BookingRef, AppRef, BookingDate, TableNo, Verified, VerifyStaffID, bPassword)
VALUES ('1', '1', '2021-03-05', 'Table 1', 'Y', '2', 'Password123'),
('2', '1', '21-01-07', 'Table 2', 'N', '3', 'Chain'),
('3', '2', '20-11-02', 'Table 3', 'Y', '1', 'aSecret'),
('4', '3', '20-12-06', 'Table 2', 'Y', '4', 'Pedal')
Я получаю эту ошибку: [описание ошибки]
Заранее спасибо.
Комментарии:
1. Сообщение об ошибке здесь довольно ясно, проверьте свои внешние ключи. Кажется, он работает по назначению (блокирует вставку для защиты целостности БД) или ваш FK настроен неправильно.
2. На стороне примечания:
'21-01-07'
неоднозначно. Какой год, месяц, день? Используйте правильные литералы даты вместо простых строк:DATE '2021-01-07'
для 7 января 2021 года.
Ответ №1:
MYSQL жалуется на FK, которого нет в родительской таблице, поэтому в вашем случае одно или несколько значений VerifyStaffID ( 1, 3, 4) не существует в родительской таблице (tblstaff)