2014-10-17 3 views
0
CREATE TABLE Customer 
(
CustomerID NUMBER NOT NULL, 
AccountID NUMBER(10) NOT NULL, 
CustomerType VARCHAR(10) NOT NULL, 
CustomerStatus VARCHAR(10) NOT NULL, 
CONSTRAINT customer_pk PRIMARY KEY (CustomerID), 
CONSTRAINT check_customer_status CHECK(CustomerStatus IN ('Ineligible', 'Eligible')), 
CONSTRAINT check_customer_type CHECK(CustomerType IN ('NonResident', 'Residential')) 
); 

Alter table CUSTOMER add CONSTRAINT res_customer_type UNIQUE (CustomerID, CustomerType) 

CREATE TABLE nonresidential 
(
CustomerID NUMBER NOT NULL, 
CustomerType VARCHAR(10) NOT NULL, 
BusinessName VARCHAR(10) NOT NULL, 
ABNNumber NUMBER(10), 
Email VARCHAR(35), 
CONSTRAINT pk_nrtable PRIMARY KEY (CustomerID), 
CONSTRAINT nonres_type CHECK (CustomerType = 'nonresident'), 
CONSTRAINT res_customer_type UNIQUE (CustomerID, CustomerType) REFERENCES Customer(CustomerID, CustomerType) 
); 

Последняя строка продолжает отображаться как отсутствующая скобка (вокруг линии ссылок вдоль уникального ограничения). Я хотел бы указать уникальное ограничение для создания таблицы подтипа под клиентом.Oracle SQL классифицирует подтип

P.S Я использую Oracle SQL, благодаря

ответ

0

Вы используете уникальное ключевое слово, где вы должны использовать ключ иностранных ключевых слов.

CONSTRAINT res_customer_type UNIQUE (CustomerID, CustomerType) REFERENCES Customer(CustomerID, CustomerType) 

должен быть

CONSTRAINT res_customer_type FOREIGN KEY (CustomerID, CustomerType) REFERENCES Customer(CustomerID, CustomerType) 
+0

Я не выполнять эти все сразу, они были выполнены отдельно. – pooch

+0

Табличка с изменениями была успешно добавлена, но создание «нежилых» таблиц не было успешным из-за предполагаемой отсутствующей скобки – pooch

+0

Это работает, спасибо большое – pooch

Смежные вопросы