CREATE TABLE,ORA-00907:缺少右括号错误

时间:2018-04-05 21:36:07

标签: sql oracle

尝试执行下面显示的脚本时会弹出此错误:

CREATE TABLE "ATTRACTION_MH"(
"AttractionNo" NUMBER(11) NOT NULL ENABLE,
"CityName" VARCHAR2(25) NOT NULL PRIMARY KEY ENABLE,
"AttractionName" VARCHAR2(25) NOT NULL ENABLE,
"Category" VARCHAR(15) NOT NULL ENABLE,
"AllocatedTime" NUMBER(3) NOTNULL ENABLE

仅创建如下所示的表格:

CREATE TABLE "CITY_MH"(
"CityName" VARCHAR2(25) NOT NULL PRIMARY KEY ENABLE,
"TourID" NUMBER(11,0) NOT NULL ENABLE,
"HotelName" VARCHAR2(15) NOT NULL ENABLE,
"NumberOfNights" NUMBER(11,0) NOT NULL ENABLE)

对于此表,会弹出同样的错误:

CREATE TABLE "TOUR_MH" (
"TourID" NUMBER(11,0) NOT NULL PRIMARY KEY ENABLE,
"TourTitle" VARCHAR2(15) NOT NULL ENABLE,
"Cost" NUMBER(10,0) NOT NULL DEFAULT 2000 ENABLE)

ALTER TABLE "CITY_MH"
FOREIGN KEY ("TourID") REFERENCES "Tour_MH" ("TourID") ENABLE;

ALTER TABLE "ATTRACTION_MH"
ADD UNIQUE ("AttractionName") ENABLE;

1 个答案:

答案 0 :(得分:1)

你真的错过了a)

CREATE TABLE ATTRACTION_MH(
AttractionNo NUMBER(11) NOT NULL ENABLE,
CityName VARCHAR2(25) NOT NULL PRIMARY KEY ENABLE,
AttractionName VARCHAR2(25) NOT NULL ENABLE,
Category VARCHAR(15) NOT NULL ENABLE,
AllocatedTime NUMBER(3) NOT NULL ENABLE);

另外,不要引用对象名称,oracle中的混合/区分大小写的对象名称对所有参与者来说都是一种痛苦,而且你将不得不忍受......永远。

对于第二个表,DEFAULT值位于内联NOT NULL约束之前。

CREATE TABLE TOUR_MH (
TourID NUMBER(11,0) NOT NULL PRIMARY KEY ENABLE,
TourTitle VARCHAR2(15) NOT NULL ENABLE,
Cost NUMBER(10,0) DEFAULT 2000 NOT NULL ENABLE);

您的ALTER TABLE错误。添加外键约束

ALTER TABLE table_name
    ADD CONSTRAINT constraint_name FOREIGN KEY ( local_col)
        REFERENCES other_table( other_table_col )
    NOT DEFERRABLE;

你的第二个也是错的。

alter table table_name add constraint constraint_name unique(column_name);

随意使用我们的免费设计和数据库GUI工具Oracle SQL Developer。它们可以帮助您绘制/设计/构建对象......并学习语法!