2009-02-06 91 views
2

我剛剛開始學習SQL,並在第一個障礙時偶然發現,我無法創建表。以下是代碼示例。我在運行語句時收到的錯誤,引用第7行,指出「關係運算符」存在問題。 line 7的目的是檢查人員的年齡是否大於18.SQL創建表錯誤

我正在使用Oracle(不確定這是否會有所作爲)。我希望有人能指出我正確的方向。

1. CREATE TABLE employee 
2. (
3. empID   VARCHAR2(20) NOT NULL primary key, 
4. surname  VARCHAR2(15) NOT NULL CHECK(surname=UPPER(surname)), 
5. deptCode  CHAR(5) NOT NULL CHECK(deptCode=UPPER(deptCode)), 
6. empYear  NUMBER(1,0) NOT NULL CHECK(empYear >= 1 AND empYear <= 4), 
7. birthDate  DATE NOT NULL CHECK((SYSDATE - birthDate) /365) >= 18 
8. ); 

謝謝。

回答

8

您不能定義引用像SYSDATE這樣的函數的CHECK約束。

Oracle文檔討論了restrictions on CHECK constraints

+0

感謝您的幫助,我會研究它。謝謝。 – Ronnie 2009-02-06 15:48:54

1

檢查括號。

DATE NOT NULL CHECK(((SYSDATE - birthDate) /365) >= 18) 

編輯:正如賈斯汀指出的,你不能在這裏使用SYSDATE。