ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用powerdesigner重新生成主表(多个子表与之关联)的若干测试

利用powerdesigner重新生成主表(多个子表与之关联)的若干测试

原创 Linux操作系统 作者:wisdomone1 时间:2010-07-04 16:58:52 0 删除 编辑

从powerdesigner15产生(preview)的重建主表的sql:

 

drop trigger "tib_e_schoolinfo"
/

alter table E_CLASSINFO
   drop constraint FK_E_CLASSI_REFERENCE_E_SCHOOL
/

alter table E_SCHOOL_GRADE
   drop constraint FK_E_SCHOOL_REFERENCE_E_SCHOOL
/

alter table E_TEACHERINFO
   drop constraint FK_E_TEACHE_REFERENCE_E_SCHOOL
/

drop index "SchoolName"
/

drop table E_SCHOOLINFO cascade constraints
/

/*==============================================================*/
/* Table: E_SCHOOLINFO                                          */
/*==============================================================*/
create table E_SCHOOLINFO  (
   SCHOOLID             CHAR(16)                        not null,
   IMAGEPATH            NUMBER(1024)                    not null,
   SCHOOLNAME           VARCHAR2(256),
   PROVINCEID           CHAR(16),
   PROVINCE             VARCHAR2(256),
   CITYID               CHAR(16),
   CITY                 VARCHAR2(256),
   DISTRICTID           CHAR(16),
   DISTRICT             VARCHAR2(256),
   STREET               VARCHAR2(128),
   ESTABLISHED          DATE,
   SCHOOLSIZE           VARCHAR2(1024),
   PRESIDENT            VARCHAR2(256),
   URL                  VARCHAR2(1024),
   SCHOOLDESC           VARCHAR2(1024),
   FULLINFO             BLOB,
   SCHOOLSTATUS         CHAR(16),
   PASTALADDRESS        VARCHAR2(256),
   POSTCODE             VARCHAR2(128),
   FAX                  VARCHAR2(128),
   SCHOOLADDRESS        VARCHAR2(256),
   CONTACTNAME          VARCHAR2(256),
   CONTACTMOBILE        VARCHAR2(128),
   CONTACTPHONE         VARCHAR2(128),
   CONTACTEMAIL         VARCHAR2(128),
   CONTACTFAX           VARCHAR2(128),
   CREATETIME           DATE,
   CREATORID            CHAR(16),
   CREATENAME           VARCHAR2(256),
   MEMO                 VARCHAR2(3000),
   constraint PK_E_SCHOOLINFO primary key (SCHOOLID)
)
/

/*==============================================================*/
/* Index: "SchoolName"                                          */
/*==============================================================*/
create unique index "SchoolName" on E_SCHOOLINFO (
   SCHOOLNAME ASC
)
/


create trigger "tib_e_schoolinfo" before insert
on E_SCHOOLINFO for each row
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;

begin
    --  Column "IMAGEPATH" uses sequence Sequence_1
    select Sequence_1.NEXTVAL INTO :new.IMAGEPATH from dual;

--  Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;
/

 

先删除与此主表关联创建的外键约束(多个子表的),继而删除基于此主表的一些存储过程,触发器等,然后才是删除此主表;

 

由此想到的是:万一在生产中,删除一个主表的数据,重新生成,哪不是业务要停了或挂了,这种情形如何处理,

  这种主外键的精细控制很有学问哟!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-667158/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12690167