我需要创建数据库表

肖小姐

我创建了我的表,但我卡在最后一个,这是正确创建的表

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:缺少右括号”

海绵宝宝

INT 不能有与之关联的比例,因此 YEAR_PUBLISHED 和 EDITION 是不正确的定义。我相信,一般来说,对于数字数据类型,您最好坚持使用 NUMBER,例如 NUMBER(4)、NUMBER(30)。

在数据库中,INT 数据类型只是 NUMBER 的子类型,因此您不会通过使用它获得任何东西:

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

如果您想查看各种“其他”数字数据类型的定义,请查看 SYS.STANDARD 包。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章