ERWIN自动生成代码解析.docx
- 文档编号:30702477
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:43
- 大小:18.94KB
ERWIN自动生成代码解析.docx
《ERWIN自动生成代码解析.docx》由会员分享,可在线阅读,更多相关《ERWIN自动生成代码解析.docx(43页珍藏版)》请在冰豆网上搜索。
ERWIN自动生成代码解析
ERWIN自动生成代码解析:
CREATETABLECLERK
(
ANUMVARCHAR2(8)NOTNULL,
ANAMEVARCHAR2(8)NULL,
APHONEVARCHAR2(11)NULL,
AADDRESSVARCHAR2(20)NULL
);
CREATEUNIQUEINDEXXPKCLERKONCLERK
(ANUMASC);
--创建唯一约束
ALTERTABLECLERK
ADDCONSTRAINTXPKCLERKPRIMARYKEY(ANUM);
--添加主键约束
CREATETABLECLERK
(
LNUMVARCHAR2(8)NOTNULL,
LNAMEVARCHAR2(8)NULL,
LPHONEVARCHAR2(11)NULL,
LADDRESSVARCHAR2(20)NULL
);
CREATEUNIQUEINDEXXPKCLERKONCLERK
(LNUMASC);
--创建唯一约束
ALTERTABLECLERK
ADDCONSTRAINTXPKCLERKPRIMARYKEY(LNUM);
--添加主键约束
CREATETABLECUSTOMERS
(
CNUMVARCHAR2(8)NOTNULL,
CNAMEVARCHAR2(10)NULL,
CADDRESSVARCHAR2(20)NULL,
CTELVARCHAR2(11)NULL,
CBANKVARCHAR2(20)NULL,
CCOUNTVARCHAR2(16)NULL,
CTEXVARCHAR2(10)NULL,
CKINDVARCHAR2(10)NULL
);
CREATEUNIQUEINDEXXPKCUSTOMERSONCUSTOMERS
(CNUMASC);
--创建唯一约束
ALTERTABLECUSTOMERS
ADDCONSTRAINTXPKCUSTOMERSPRIMARYKEY(CNUM);
--添加主键约束
CREATETABLEFREEDERS
(
FNUMVARCHAR2(8)NOTNULL,
FNAMEVARCHAR2(20)NULL,
FADDRESSVARCHAR2(20)NULL,
FTELVARCHAR2(11)NULL,
FFAXVARCHAR2(11)NULL,
FBANKVARCHAR2(20)NULL,
FCOUNTVARCHAR2(16)NULL,
FTAXVARCHAR2(20)NULL
);
CREATEUNIQUEINDEXXPKFREEDERSONFREEDERS
(FNUMASC);
--创建唯一约束
ALTERTABLEFREEDERS
ADDCONSTRAINTXPKFREEDERSPRIMARYKEY(FNUM);
--添加主键约束
CREATETABLEGOODS
(
NUMVARCHAR2(8)NOTNULL,
NAMEVARCHAR2(20)NULL,
RULEVARCHAR2(10)NULL,
KINDVARCHAR2(4)NULL,
PLACEVARCHAR2(20)NULL,
PRICENUMBER(4,2)NULL,
SELLPRICENUMBER(4,2)NULL,
LOWPRICENUMBER(4,2)NULL
);
CREATEUNIQUEINDEXXPKGOODSONGOODS
(NUMASC);
--创建唯一约束
ALTERTABLEGOODS
ADDCONSTRAINTXPKGOODSPRIMARYKEY(NUM);
--添加主键约束
CREATETABLERESERVE
(
SNUMVARCHAR2(8)NOTNULL,
NUMVARCHAR2(8)NOTNULL,
SNAMEVARCHAR2(8)NULL,
NAMEVARCHAR2(20)NULL,
STORE_NUMNUMBER(10)NULL,
SKINDVARCHAR2(8)NULL,
PRICENUMBER(4,2)NULL,
ANUMVARCHAR2(8)NULL,
NAME__267CHAR(18)NULL
);
CREATEUNIQUEINDEXXPKRESERVEONRESERVE
(SNUMASC,NUMASC);
--创建唯一约束
ALTERTABLERESERVE
ADDCONSTRAINTXPKRESERVEPRIMARYKEY(SNUM,NUM);
--添加主键约束
CREATETABLESELL
(
NUMVARCHAR2(8)NOTNULL,
CNUMVARCHAR2(8)NOTNULL,
LNUMVARCHAR2(8)NOTNULL,
SELL_TIMEDATENULL,
SELL_PRICENUMBER(4)NULL,
SELL_NUMBEINUMBER(4)NULL,
SELL_PAYNUMBER(10)NULL,
SELL_PQYEDNUMBER(10)NULL,
SELL_ORPRICENUMBER(10)NULL
);
CREATEUNIQUEINDEXXPKSELLONSELL
(NUMASC,CNUMASC,LNUMASC);
--创建唯一约束
ALTERTABLESELL
ADDCONSTRAINTXPKSELLPRIMARYKEY(NUM,CNUM,LNUM);
--添加主键约束
CREATETABLESTORAGE
(
SNUMVARCHAR2(8)NOTNULL,
SNAMEVARCHAR2(8)NULL,
SKINDVARCHAR2(8)NULL
);
CREATEUNIQUEINDEXXPKSTORAGEONSTORAGE
(SNUMASC);
--创建唯一约束
ALTERTABLESTORAGE
ADDCONSTRAINTXPKSTORAGEPRIMARYKEY(SNUM);
--添加主键约束
CREATETABLESTORE
(
NUMVARCHAR2(8)NOTNULL,
FNUMVARCHAR2(8)NOTNULL,
ANUMVARCHAR2(8)NOTNULL,
BNUMNUMBER(10)NULL,
BDATADATENULL,
BPRICENUMBER(10)NULL,
BMODENUMBER(10)NULL,
BCPRICEVARCHAR2(20)NULL,
BPQYEDNUMBER(10)NULL
);
CREATEUNIQUEINDEXXPKSTOREONSTORE
(NUMASC,FNUMASC,ANUMASC);
--创建唯一约束
ALTERTABLESTORE
ADDCONSTRAINTXPKSTOREPRIMARYKEY(NUM,FNUM,ANUM);
--添加主键约束
ALTERTABLERESERVE
ADD(CONSTRAINTR_3FOREIGNKEY(SNUM)REFERENCESSTORAGE(SNUM));
--添加外键约束
ALTERTABLERESERVE
ADD(CONSTRAINTR_5FOREIGNKEY(NUM)REFERENCESGOODS(NUM));
--添加外键约束
ALTERTABLESELL
ADD(CONSTRAINTR_10FOREIGNKEY(NUM)REFERENCESGOODS(NUM));
--添加外键约束
ALTERTABLESELL
ADD(CONSTRAINTR_12FOREIGNKEY(CNUM)REFERENCESCUSTOMERS(CNUM));
--添加外键约束
ALTERTABLESELL
ADD(CONSTRAINTR_13FOREIGNKEY(LNUM)REFERENCESCLERK(LNUM));
--添加外键约束
ALTERTABLESTORE
ADD(CONSTRAINTR_14FOREIGNKEY(NUM)REFERENCESGOODS(NUM));
--添加外键约束
ALTERTABLESTORE
ADD(CONSTRAINTR_16FOREIGNKEY(FNUM)REFERENCESFREEDERS(FNUM));
--添加外键约束
ALTERTABLESTORE
ADD(CONSTRAINTR_18FOREIGNKEY(ANUM)REFERENCESCLERK(ANUM));
--添加外键约束
/*在CLERK表上创建更新触发器,在CLERK(被参照表)中更新记录时,若STORE(参照表)中有对应ANUM的记录,则拒绝执行更新操作。
*/
CREATETRIGGERtD_CLERKAFTERDELETEONCLERKforeachrow
--ERwinBuiltin2010年12月28日4:
13:
58
--DELETEtriggeronCLERK
DECLARENUMROWSINTEGER;
BEGIN
/*ERwinBuiltin2010年12月28日4:
13:
58*/
/*CLERKR/18STOREonparentdeleterestrict*/
/*ERWIN_RELATION:
CHECKSUM="0000d432",PARENT_OWNER="",PARENT_TABLE="CLERK"
CHILD_OWNER="",CHILD_TABLE="STORE"
P2C_VERB_PHRASE="R/18",C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_18",FK_COLUMNS="ANUM"*/
SELECTcount(*)INTONUMROWS
FROMSTORE
WHERE
/*%JoinFKPK(STORE,:
%Old,"=","AND")*/
STORE.ANUM=:
old.ANUM;
IF(NUMROWS>0)
THEN
raise_application_error(
-20001,
'CannotdeleteCLERKbecauseSTOREexists.'
);
ENDIF;
--ERwinBuiltin2010年12月28日4:
13:
58
END;
/
/*在CLERK表上创建更新触发器,在CLERK(被参照表)中更新记录时,若造成了与STORE(参照表)中对应ANUM的不一致,则拒绝执行更新操作。
*/
CREATETRIGGERtU_CLERKAFTERUPDATEONCLERKforeachrow
--ERwinBuiltin2010年12月28日4:
13:
58
--UPDATEtriggeronCLERK
DECLARENUMROWSINTEGER;
BEGIN
/*ERwinBuiltin2010年12月28日4:
13:
58*/
/*CLERKR/18STOREonparentupdaterestrict*/
/*ERWIN_RELATION:
CHECKSUM="0000f797",PARENT_OWNER="",PARENT_TABLE="CLERK"
CHILD_OWNER="",CHILD_TABLE="STORE"
P2C_VERB_PHRASE="R/18",C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_18",FK_COLUMNS="ANUM"*/
IF
/*%JoinPKPK(:
%Old,:
%New,"<>","OR")*/
CLERK.ANUM<>CLERK.ANUM
THEN
SELECTcount(*)INTONUMROWS
FROMSTORE
WHERE
/*%JoinFKPK(STORE,:
%Old,"=","AND")*/
STORE.ANUM=:
old.ANUM;
IF(NUMROWS>0)
THEN
raise_application_error(
-20005,
'CannotupdateCLERKbecauseSTOREexists.'
);
ENDIF;
ENDIF;
--ERwinBuiltin2010年12月28日4:
13:
58
END;
/
/*在CLERK表上创建更新触发器,在CLERK(被参照表)中更新记录时,若造成了与SELL(参照表)中对应LNUM的不一致,则拒绝执行更新操作。
*/
CREATETRIGGERtD_CLERKAFTERDELETEONCLERKforeachrow
--ERwinBuiltin2010年12月28日4:
13:
58
--DELETEtriggeronCLERK
DECLARENUMROWSINTEGER;
BEGIN
/*ERwinBuiltin2010年12月28日4:
13:
58*/
/*CLERKR/13SELLonparentdeleterestrict*/
/*ERWIN_RELATION:
CHECKSUM="0000d34c",PARENT_OWNER="",PARENT_TABLE="CLERK"
CHILD_OWNER="",CHILD_TABLE="SELL"
P2C_VERB_PHRASE="R/13",C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_13",FK_COLUMNS="LNUM"*/
SELECTcount(*)INTONUMROWS
FROMSELL
WHERE
/*%JoinFKPK(SELL,:
%Old,"=","AND")*/
SELL.LNUM=:
old.LNUM;
IF(NUMROWS>0)
THEN
raise_application_error(
-20001,
'CannotdeleteCLERKbecauseSELLexists.'
);
ENDIF;
--ERwinBuiltin2010年12月28日4:
13:
58
END;
/
/*在CLERK表上创建更新触发器,在CLERK(被参照表)中更新记录时,若造成了与SELL(参照表)中对应LNUM的不一致,则拒绝执行更新操作。
*/
CREATETRIGGERtU_CLERKAFTERUPDATEONCLERKforeachrow
--ERwinBuiltin2010年12月28日4:
13:
58
--UPDATEtriggeronCLERK
DECLARENUMROWSINTEGER;
BEGIN
/*ERwinBuiltin2010年12月28日4:
13:
58*/
/*CLERKR/13SELLonparentupdaterestrict*/
/*ERWIN_RELATION:
CHECKSUM="0000f3dc",PARENT_OWNER="",PARENT_TABLE="CLERK"
CHILD_OWNER="",CHILD_TABLE="SELL"
P2C_VERB_PHRASE="R/13",C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_13",FK_COLUMNS="LNUM"*/
IF
/*%JoinPKPK(:
%Old,:
%New,"<>","OR")*/
CLERK.LNUM<>CLERK.LNUM
THEN
SELECTcount(*)INTONUMROWS
FROMSELL
WHERE
/*%JoinFKPK(SELL,:
%Old,"=","AND")*/
SELL.LNUM=:
old.LNUM;
IF(NUMROWS>0)
THEN
raise_application_error(
-20005,
'CannotupdateCLERKbecauseSELLexists.'
);
ENDIF;
ENDIF;
--ERwinBuiltin2010年12月28日4:
13:
58
END;
/
/*在CUSTOMERS表上创建更新触发器,在CUSTOMERS(被参照表)中更新记录时,若造成了与SELL(参照表)中对应CNUM的不一致,则拒绝执行更新操作。
*/
CREATETRIGGERtD_CUSTOMERSAFTERDELETEONCUSTOMERSforeachrow
--ERwinBuiltin2010年12月28日4:
13:
58
--DELETEtriggeronCUSTOMERS
DECLARENUMROWSINTEGER;
BEGIN
/*ERwinBuiltin2010年12月28日4:
13:
58*/
/*CUSTOMERSR/12SELLonparentdeleterestrict*/
/*ERWIN_RELATION:
CHECKSUM="0000d542",PARENT_OWNER="",PARENT_TABLE="CUSTOMERS"
CHILD_OWNER="",CHILD_TABLE="SELL"
P2C_VERB_PHRASE="R/12",C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_12",FK_COLUMNS="CNUM"*/
SELECTcount(*)INTONUMROWS
FROMSELL
WHERE
/*%JoinFKPK(SELL,:
%Old,"=","AND")*/
SELL.CNUM=:
old.CNUM;
IF(NUMROWS>0)
THEN
raise_application_error(
-20001,
'CannotdeleteCUSTOMERSbecauseSELLexists.'
);
ENDIF;
--ERwinBuiltin2010年12月28日4:
13:
58
END;
CREATETRIGGERtU_CUSTOMERSAFTERUPDATEONCUSTOMERSforeachrow
--ERwinBuiltin2010年12月28日4:
13:
58
--UPDATEtriggeronCUSTOMERS
DECLARENUMROWSINTEGER;
BEGIN
/*ERwinBuiltin2010年12月28日4:
13:
58*/
/*CUSTOMERSR/12SELLonparentupdaterestrict*/
/*ERWIN_RELATION:
CHECKSUM="0000f5a4",PARENT_OWNER="",PARENT_TABLE="CUSTOMERS"
CHILD_OWNER="",CHILD_TABLE="SELL"
P2C_VERB_PHRASE="R/12",C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_12",FK_COLUMNS="CNUM"*/
IF
/*%JoinPKPK(:
%Old,:
%New,"<>","OR")*/
CUSTOMERS.CNUM<>CUSTOMERS.CNUM
THEN
SELECTcount(*)INTONUMROWS
FROMSELL
WHERE
/*%JoinFKPK(SELL,:
%Old,"=","AND")*/
SELL.CNUM=:
old.CNUM;
IF(NUMROWS>0)
THEN
raise_application_error(
-20005,
'CannotupdateCUSTOMERSbecauseSELLexists.'
);
ENDIF;
ENDIF;
--ERwinBuiltin2010年12月28日4:
13:
58
END;
/
/*在FREEDERS表上创建更新触发器,在FREEDERS(被参照表)中更新记录时,若造成了与STORE(参照表)中对应FNUM的不一致,则拒绝执行更新操作。
*/
CREATETRIGGERtD_FREEDERSAFTERDELETEONFREEDERSforeachrow
--ERwinBuiltin2010年12月28日4:
13:
58
--DELETEtriggeronFREEDERS
DECLARENUMROWSINTEGER;
BEGIN
/*ERwinBuiltin2010年12月28日4:
13:
58*/
/*FREEDERSR/16STOREonparentdeleterestrict*/
/*ERWIN_RELATION:
CHECKSUM="0000d3bf",PARENT_OWNER="",PARENT_TABLE="FREEDERS"
CHILD_OWNER="",CHILD_TABLE="STORE"
P2C_VERB_PHRASE="R/16",C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_16",FK_COLUMNS="FN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ERWIN 自动 生成 代码 解析