2014-11-23 3 views
-1

테이블을 만들고 채 웠지만 모든 테이블에서 참조 무결성을 확인하는 쿼리를 작성하는 방법을 모르겠습니다.SQL : 모든 테이블에서 참조 무결성을 확인하는 쿼리

  • SELECT 목록을 목록에서 모든 기본 키
  • 모든 테이블
  • 곳은 내가 지금까지 무엇을 가지고

모든 관계를 보여줍니다 :

는 내가 필요로 무엇

SELECT 
    categId, zipCode, suppId, acctId, prodId, orderId 
From 
    CATEGORY, ZIP, SUPPLIER, ACCOUNT, SUPPLIER_REGION, PRODUCT, PROD_DETAIL, ORDERX, ORDER_LINE_ITEM 

저는 오전입니다. 어디서 무엇을 넣을 지.

교수님은 참조 무결성을 확인하는 명령을 원합니다. 그가 원하는 다른 많은 재료가 있지만 이것은 내가하는 법을 모르는 유일한 것입니다.

테이블을 추가했습니다.

create table CATEGORY (
    categId varchar (8), 
    categIdParent varchar (8), 
    constraint CATEGORY_PK primary key (categId), 
    constraint CATEGORY_FK foreign key (categIdParent) references CATEGORY (categId) 
); 

create table ZIP(
    zipCode int (5), 
    city varChar (16), 
    state varChar (16), 
    constraint ZIP_PK primary key (zipCode) 
); 

create table SUPPLIER (
    supplId int (9), 
    supplName varChar (24), 
    supplStatus varChar (16), 
    supplYearEstabl date, 
    zipCode int (5), 
    constraint SUPPLIER_PK primary key (supplId), 
    constraint SUPPLIER_FK Foreign Key (zipCode) references ZIP (zipCode) 
); 

CREATE TABLE SUPPLIER_REGION (
    supplId int (9), 
    region varChar (24), 
    constraint SUPPLIER_REGION_PK primary key (supplId, region), 
    constraint SUPPLIER_REGION_FK foreign key (supplId) references SUPPLIER (supplId) 
); 

create table PRODUCT (
    prodId int (11), 
    prodDescr varChar (256), 
    prodType varChar (12), 
    prodModel Char (16), 
    prodPlaceOrigin Char (16), 
    prodPrice decimal (10,2), 
    prodMinQty int (8), 
    supplId int (9), 
    categId varchar (8), 
    constraint PRODUCT_PK primary key (prodId), 
    constraint PRODUCT_FK1 foreign key (supplId) references SUPPLIER (supplId), 
    constraint PRODUCT_FK2 foreign key (categId) references CATEGORY (categId) 
); 

create table PROD_DETAIL (
    prodId int (11), 
    prodDetailNo int (8), 
    prodDetailName varChar (32), 
    prodDetailValue decimal (10,2), 
    constraint PROD_DETAIL_PK primary key (prodID, prodDetailNo), 
    constraint PROD_DETAIL_FK foreign key (prodID) references PRODUCT (prodID) 
); 

create table ACCOUNT (
    acctId varchar(50), 
    acctName varChar (24), 
    acctDept varChar (16), 
    acctTitle varChar (16), 
    acctGender Char (1), 
    acctEmail varChar (24), 
    acctAddr varChar (24), 
    zipCode int (5), 
    acctPhone int (11), 
    constraint ACCOUNT_PK primary key (acctId), 
    constraint ACCOUNT_FK foreign key (zipCode) references ZIP (zipCode) 
); 

create table ORDERX (
    orderId int (8), 
    orderPayMethod varChar (16), 
    orderShipDate date, 
    acctId varchar (50), 
    constraint ORDER_PK primary key (orderId), 
    constraint ORDER_FK foreign key (acctId) references ACCOUNT (acctId) 
); 

create table ORDER_LINE_ITEM (
    orderId int (8), 
    orderLineNo int (8), 
    orderLineQty int (8), 
    orderLineUnit int (8), 
    orderLinePrice decimal (10,2), 
    prodId int (11), 
    constraint ORDER_LINE_ITEM_PK primary key (orderId, orderLineNo), 
    constraint ORDER_LINE_ITEM_FK1 foreign key (orderId) references ORDERX (orderId), 
    constraint ORDER_LINE_ITEM_FK2 foreign key (prodId) references PRODUCT (prodId) 
); 
+1

그래서 어떤 RDBMS입니까? – Strawberry

+2

참조 무결성을 "확인"해야하는 이유는 무엇입니까? 외래 키 제약 조건을 정의하는 것을 잊었습니까? –

답변

0

SQL Server의 경우 좋은 방법 중 하나는 SSMS에서 다이어그램을 만드는 것입니다. 다이어그램에 각 테이블을 배치하면 FK 관계가 테이블과 기본 키 사이의 줄이 "키"아이콘으로 표시 될 때 렌더링됩니다.

관련 문제