Ошибка в запросе: невозможно удалить или обновить родительскую строку: ограничение внешнего ключа не выполнено - PullRequest
0 голосов
/ 24 мая 2018

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

Error in query: Cannot delete or update a parent row: a foreign key constraint fails (`MyName_4.2c`.`tbl_reservation`, CONSTRAINT `tbl_reservation_ibfk_2` FOREIGN KEY (`propertyId`) REFERENCES `tbl_property` (`propertyId`)) 

Код:

<?php
    session_start();
    $userId = $_GET['userId'];
    require_once('databaseConn.php');


    $query = "DELETE FROM tbl_reservation WHERE userId = '$userId'";
    $result = mysqli_query($connection, $query)
            or die("Error in query: ". mysqli_error($connection));

    $query2 = "DELETE FROM tbl_property WHERE userId = '$userId'";
    $result2 = mysqli_query($connection, $query2)
            or die("Error in query: ". mysqli_error($connection));

    $query3 = "DELETE FROM tbl_users WHERE userId = '$userId'";
    $result3 = mysqli_query($connection, $query3)
            or die("Error in query: ". mysqli_error($connection));

    header('Location: index.php');
?>       

Мои таблицы:

CREATE TABLE `tbl_property` (
`propertyId` int(11) NOT NULL,
`userId` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`capacity` int(11) NOT NULL,
`pricePerNight` double NOT NULL,
`locationId` int(11) NOT NULL,
`image` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `tbl_reservation` (
`reservationId` int(11) NOT NULL,
`propertyId` int(11) NOT NULL,
`date_from` date NOT NULL,
`date_to` date NOT NULL,
`amountPaid` double NOT NULL,
`userId` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE `tbl_users` (
`userId` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`surname` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE `tbl_location` (
`locationId` int(11) NOT NULL,
`location` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...