iは

2017-05-02 2 views
-2

は私が私のテーブルを作成し、私は最後のものでこだわって作成するデータベースのテーブルを必要とし、ここで はiは

CREATE TABLE Staff ( 
    Staff_ID INT NOT NULL PRIMARY KEY, 
    First_Name VARCHAR(50), 
    Last_Name VARCHAR(50), 
    Username VARCHAR(10), 
    Password VARCHAR(10), 
    Address VARCHAR(30) 
) 

CREATE TABLE Category ( 
    Category_ID INT NOT NULL PRIMARY KEY, 
    Name VARCHAR(30) 
) 

CREATE TABLE Author ( 
    Author_ID INT NOT NULL PRIMARY KEY, 
    First_Name VARCHAR(50), 
    Last_Name VARCHAR(50), 
    Birth_Place VARCHAR(30), 
    Birth_Date DATE 
) 

CREATE TABLE Publisher ( 
    Publisher_ID INT NOT NULL PRIMARY KEY, 
    Name VARCHAR(50) 
) 

正しく作成されたテーブルであり、これは、私はエラーを取得していますいずれかになります。

CREATE TABLE Book ( 
    Book_ID INT NOT NULL PRIMARY KEY, 
    Title VARCHAR(50), 
    Edition INT(30), 
    Year_Published INT(4), 
    FOREIGN KEY (Publisher_ID) REFERENCES Publisher(Publisher_ID), 
    FOREIGN KEY (Author_ID) REFERENCES Author(Author_ID), 
    FOREIGN KEY (Category_ID) REFERENCES Category(Category_ID) 
) 

エラーは言う:

"ORA-00907:欠落している右括弧"

+0

は、エラー・メッセージは、Oracleから来るスパムタグ – hassan

+0

しません。なぜ質問は 'oracle'の代わりに' mysql'とタグ付けされていますか? https://www.techonthenet.com/oracle/foreign_keys/foreign_keys: – Barmar

+0

申し訳ありませんが、これは私がウェブサイト –

答えて

2

INTが間違って定義されているので、YEAR_PUBLISHEDとEDITIONそれに関連する規模を持つことはできません。 私は、例えば、NUMBER(4)、NUMBER(30)、一般的に、あなたは、数値データ型にNUMBERに付着したほうが良いだろう、と信じています。

type NUMBER is NUMBER_BASE; 
subtype INTEGER is NUMBER(38,0); 
subtype INT is INTEGER; 

あなたは、さまざまな「その他」の数値の定義を確認したい場合:INTのデータ型は、単にあなたがそれを使って何かを獲得していないので、NUMBERのサブタイプであるデータベースで

データ型はSYS.STANDARDパッケージを調べます。

+0

は明らかにあなたが正しい、どうもありがとう..私は年発行・編集やテーブルが –

+0

@MissSHOOSHを作成された列を削除 - より多くの重要な問題は、それらの列がどうあるべきです。構文規則は1つのことですが、データの意味と構造の仕方ははるかに重要です。がんばろう。 – BriteSponge

2
  • INTデータ型には精度がありません。
  • またPublisher_IDAuthor_IDCategory_ID列を定義する必要があります。
  • 制約の名前を付けることをお勧めします。
  • PRIMARY KEYの列はNOT NULLUNIQUEの両方であるため、2番目のNOT NULLという制約を含める必要はありません。このよう

CREATE TABLE Book ( 
    Book_ID  INT CONSTRAINT Book__Book_id__PK PRIMARY KEY, 
    Title   VARCHAR(50), 
    Edition  INT, 
    Year_Published INT, 
    Publisher_ID INT CONSTRAINT Book__Publisher_ID__FK REFERENCES Publisher(Publisher_ID), 
    Author_ID  INT CONSTRAINT Book__Author_id__FK REFERENCES Author(Author_ID), 
    Category_ID INT CONSTRAINT Book__category_ID__FK REFERENCES Category(Category_ID) 
);