МОЙ вопрос заключается в следующем:SQL Проверочное ограничение .. не работает WITH ME
Создать новую таблицу с именем частые путешественники (FreqTrav). Он будет хранить только пассажиров, которые совершили более двух поездок с компанией. Он будет записывать имя пассажира, номер пассажира, адрес, номер телефона, общие поездки и общую стоимость проезда. Покажите запрос CREATE TABLE и запрос INSERT. Вставьте записи с помощью подзапроса (т. Е. Вставьте из запроса SELECT).
Я Worte следующий запрос :
CREATE TABLE FreqTrav (
PASSENGERNUM INT(20)
CHECK (PASSENGERNUM IN
(SELECT P.PASSENGERNUM
FROM PASSENGER P, VOYAGE V
WHERE P.PASSENGERNUM = V.PASSENGERNUM
GROUP BY V.PASSENGERNUM
HAVING COUNT(*) >2))
passengername CHAR (20)
address VARCHAR(50)
phonenumber CHAR(20)
totaltrips INT (20)
CHECK (totaltrips IN
(SELECT COUNT(PASSENGERNUM)
FROM VOYAGE
GROUP BY PASSENGERNUM HAVING COUNT(*) >2))
totalfare INT (20)
CHECK (totalfare IN
(SELECT SUM(FARE)
FROM VOYAGE
WHERE PASSENGERNUM IN
(SELECT COUNT(PASSENGERNUM)
FROM VOYAGE
GROUP BY PASSENGERNUM HAVING COUNT(*) >2)))
);
, но это не работает для меня, так как я попытался вставить passengernum кто did't путешествие более чем в два раза, и он был включен. Кроме того, у меня есть вопрос, касающийся других столбцов, это будет okey, если значение, вставленное в отличие от значений в исходной таблице, или мне нужно выполнить проверку, такую же, как и то, что я сделал для общей поездки и общего тарифа ?
Я приложил мою таблицу базы данных по ссылке ниже ПОС, а также http://i.stack.imgur.com/ojzHt.png благодаря