-1
我的問題是這樣的:SQL CHECK約束..是不是和我一起工作
創建新表命名爲常旅客(FreqTrav)。它只會儲存與公司進行兩次以上旅行的乘客。它會記錄乘客姓名,乘客號碼,地址,電話號碼,總旅程和總付費。顯示你的CREATE TABLE查詢和INSERT查詢。請使用子查詢插入記錄(即從SELECT查詢插入)。
我又寫道下面的查詢 :
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誰我以前不出差的兩倍以上,並插入。 另外,我有一個關於其他列的問題是,如果插入的值與原始表中的值不同,還是必須執行與我對總行程和總票價所做的相同的檢查常量?
我重視我的數據庫表以低於以及PIC的鏈接 http://i.stack.imgur.com/ojzHt.png 感謝