Вы находитесь на странице: 1из 8

ALTER TABLE USER1.CITY DROP PRIMARY KEY CASCADE; DROP TABLE USER1.CITY CASCADE CONSTRAINTS; CREATE TABLE USER1.

CITY ( ID_CITY NUMBER, CITYNAME VARCHAR2(30 BYTE) ) TABLESPACE USERS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOLOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING; CREATE BITMAP INDEX USER1.BI_CITYNAME ON USER1.CITY (CITYNAME) NOLOGGING TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE UNIQUE INDEX USER1.PK_ID_CITY ON USER1.CITY (ID_CITY) NOLOGGING TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED

PCTINCREASE BUFFER_POOL ) NOPARALLEL;

0 DEFAULT

ALTER TABLE USER1.CITY ADD ( CONSTRAINT PK_ID_CITY PRIMARY KEY (ID_CITY) USING INDEX USER1.PK_ID_CITY);

ALTER TABLE USER1.DEPARTMENT DROP PRIMARY KEY CASCADE; DROP TABLE USER1.DEPARTMENT CASCADE CONSTRAINTS; CREATE TABLE USER1.DEPARTMENT ( ID_DEPT NUMBER, DEPTNAME VARCHAR2(30 BYTE), ID_CITY NUMBER ) TABLESPACE USERS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOLOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING; CREATE UNIQUE INDEX USER1.PK_ID_DEPT ON USER1.DEPARTMENT (ID_DEPT) NOLOGGING TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M

MINEXTENTS MAXEXTENTS PCTINCREASE BUFFER_POOL ) NOPARALLEL;

1 UNLIMITED 0 DEFAULT

ALTER TABLE USER1.DEPARTMENT ADD ( CONSTRAINT PK_ID_DEPT PRIMARY KEY (ID_DEPT) USING INDEX USER1.PK_ID_DEPT); ALTER TABLE USER1.DEPARTMENT ADD ( CONSTRAINT FK_ID_CITY FOREIGN KEY (ID_CITY) REFERENCES USER1.CITY (ID_CITY));

ALTER TABLE USER1.EMPLOYEE DROP PRIMARY KEY CASCADE; DROP TABLE USER1.EMPLOYEE CASCADE CONSTRAINTS; CREATE TABLE USER1.EMPLOYEE ( ID_EMP NUMBER, USERNAME VARCHAR2(30 BYTE) ID_DEPT NUMBER ) TABLESPACE USERS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOLOGGING NOCOMPRESS NOCACHE NOPARALLEL

NOT NULL,

MONITORING; CREATE UNIQUE INDEX USER1.UQ_ID_EMP_IDX ON USER1.EMPLOYEE (ID_EMP) NOLOGGING TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE INDEX USER1.USERNAME_IDX ON USER1.EMPLOYEE (USERNAME) NOLOGGING TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE OR REPLACE TRIGGER USER1.update_history_emp AFTER UPDATE ON USER1.EMPLOYEE FOR EACH ROW BEGIN add_history_emp (:old.id_emp, :old.username, :old.id_dept); END; / DROP PUBLIC SYNONYM S_EMPLOYEE; CREATE OR REPLACE PUBLIC SYNONYM S_EMPLOYEE FOR USER1.EMPLOYEE; ALTER TABLE USER1.EMPLOYEE ADD ( CONSTRAINT PK_ID_EMP PRIMARY KEY (ID_EMP) USING INDEX USER1.UQ_ID_EMP_IDX); ALTER TABLE USER1.EMPLOYEE ADD (

CONSTRAINT FK_ID_DEPT FOREIGN KEY (ID_DEPT) REFERENCES USER1.DEPARTMENT (ID_DEPT));

ALTER TABLE USER1.HISTORY_EMP DROP PRIMARY KEY CASCADE; DROP TABLE USER1.HISTORY_EMP CASCADE CONSTRAINTS; CREATE TABLE USER1.HISTORY_EMP ( HIS_ID_EMP NUMBER, HIS_USERNAME VARCHAR2(30 BYTE) HIS_ID_DEPT NUMBER, HIS_DATE DATE, ID_HISTORY NUMBER ) TABLESPACE USERS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOLOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING;

NOT NULL,

-- There is no statement for index USER1.SYS_C004143. -- The object is created automatically by Oracle when the parent object is crea ted. CREATE OR REPLACE TRIGGER USER1.trig_coba AFTER UPDATE ON USER1.HISTORY_EMP REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE

tmpVar NUMBER; /****************************************************************************** NAME: PURPOSE: REVISIONS: Ver Date Author Description --------- ---------- --------------- -----------------------------------1.0 12/11/2012 u052862 1. Created this trigger. NOTES: Automatically available Auto Replace Keywords: Object Name: Sysdate: 12/11/2012 Date and Time: 12/11/2012, 11:11:35 AM, and 12/11/2012 11:11:35 AM Username: u052862 (set in TOAD Options, Proc Templates) Table Name: (set in the "New PL/SQL Object" dialog) Trigger Options: (set in the "New PL/SQL Object" dialog) ******************************************************************************/ BEGIN tmpVar := 0; --SELECT MySeq.NEXTVAL INTO tmpVar FROM dual; insert into history_emp (id_history, his_id_emp, his_username, his_id_dept, h is_date) values(seq_id_history.nextval,id_emp ,:new.username,:new.id_dept ,sysda te) :NEW.SequenceColumn := tmpVar; :NEW.CreatedDate := SYSDATE; :NEW.CreatedUser := USER; EXCEPTION WHEN OTHERS THEN -- Consider logging the error and then re-raise RAISE; END ; / ALTER TABLE USER1.HISTORY_EMP ADD ( PRIMARY KEY (ID_HISTORY) USING INDEX TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 ));

DROP TRIGGER USER1.TRIG_COBA; CREATE OR REPLACE TRIGGER USER1.trig_coba AFTER UPDATE ON USER1.HISTORY_EMP REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE tmpVar NUMBER; /****************************************************************************** NAME: PURPOSE: REVISIONS: Ver Date Author Description --------- ---------- --------------- -----------------------------------1.0 12/11/2012 u052862 1. Created this trigger. NOTES: Automatically available Auto Replace Keywords: Object Name: Sysdate: 12/11/2012 Date and Time: 12/11/2012, 11:11:35 AM, and 12/11/2012 11:11:35 AM Username: u052862 (set in TOAD Options, Proc Templates) Table Name: (set in the "New PL/SQL Object" dialog) Trigger Options: (set in the "New PL/SQL Object" dialog) ******************************************************************************/ BEGIN tmpVar := 0; --SELECT MySeq.NEXTVAL INTO tmpVar FROM dual; insert into history_emp (id_history, his_id_emp, his_username, his_id_dept, h is_date) values(seq_id_history.nextval,id_emp ,:new.username,:new.id_dept ,sysda te) :NEW.SequenceColumn := tmpVar; :NEW.CreatedDate := SYSDATE; :NEW.CreatedUser := USER; EXCEPTION WHEN OTHERS THEN -- Consider logging the error and then re-raise RAISE; END ; /

DROP TRIGGER USER1.UPDATE_HISTORY_EMP; CREATE OR REPLACE TRIGGER USER1.update_history_emp AFTER UPDATE ON USER1.EMPLOYEE FOR EACH ROW BEGIN add_history_emp (:old.id_emp, :old.username, :old.id_dept); END; /

Вам также может понравиться