2011-04-09 59 views
0

我在下面的命令創建表的錯誤:在oracle中創建表時有錯誤?

Create table Sells 
(Store_name varchar2(20) no null, 
ISBN char(15) not null, 
Unit_price number(3,2) not null, 
Shipping_fee number(3,2) not null, 
primary key(Store_name, ISBN), 
foreign key (Store_name) references Bookstore(Name) on delete cascade, 
check(Unit_price>0), 
foreign key (ISBN) references Books(ISBN) on delete cascade; 

它說:

ORA-00907:缺少右括號

無法找出其中的錯誤。 任何人提供一些幫助,爲什麼這是錯的?

+3

創建表銷售(< - 此括號永遠不會關閉......可能在分號結尾之前? – forsvarir 2011-04-09 23:47:19

+0

您可能想糾正第二行中的'no null' – 2011-04-10 00:29:24

回答

3
create table sells 
(
    store_name varchar2(20) not null, 
    isbn char(15) not null, 
    unit_price number(3,2) not null, 
    shipping_fee number(3,2) not null, 
    primary key(store_name, isbn), 
    foreign key (store_name) 
    references book_store(name) 
     on delete cascade, 
    check(unit_price>0), 
    foreign key (isbn) 
    references books(isbn) 
    on delete cascade 
); 
+0

什麼是修改你已經完成了嗎?它仍然是一樣的,並給出了錯誤! – user666748 2011-04-10 00:08:21

+0

@ user666748:看起來非常接近'cascade'末尾:) – sarnold 2011-04-10 00:34:18

+0

嗯,我不能完全測試ddl,因爲我沒有定義參考表,但您的原始代碼表示「不爲空」,並在最後缺少括號。 – 2011-04-10 00:42:40

0

創建表主要銷售 (STORE_NAME VARCHAR2(20)空, ISBN炭(15)不爲空, UNIT_PRICE號碼(3,2)不爲空, Shipping_fee號碼(3,2)外部關鍵字(Store_name) 外部關鍵字(Store_name)引用書店(名稱)刪除級聯, 檢查(Unit_price> 0), 外部關鍵字(ISBN)引用書籍(ISBN)刪除級聯* *;