我创建了我的表并填充了它但我不确定如何编写查询来验证所有表的参照完整性。
这就是我需要的:
这是我到目前为止所做的:
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)
);
答案 0 :(得分:0)
对于SQL Server,一个好方法是在SSMS中创建一个图表。当您将每个表放入图表时,FK关系将呈现为表格之间的线条,主键将显示为" key"的图标。