안녕하세요 오라클 생초보입니다. 0 2 2,045

by 도명 [2009.10.07 10:13:43]


오라클을 공부하기 시작한지 한달 정도 되는 머리가 백지장인 학생입니다.

지인의 도움으로 오라클은 무사히 설치를 하였습니다.

SQLgate를 사용하고 있구요 테스트서버또한 가지고 있습니다.

무사히 설치를 마치고 공부를 하던 중 공들여 놨던 테이블을 실수로 그만 날려버렸습니다.

뭐 직접 만든 테이블은 아니구요 설치시 기본적으로 학습 할 수 있는 테스트 테이블인 EMP테이블입니다.

그래서 EMP테이블을 살리기 위해 ROLLBACK을 실시 하였는데 DROP명령어를 써서 자동 COMMIT되기 때문에

ROLLBACK를 하여도 살릴 수 없다고 하더라구요 주위분들은 다시 만들면 되지 라도 하시는데 솔직히 초보인 제가

테이블 구성이 어떻게 되어있는지도 모르겠고 제일 중요한건 요즘 동영상 강의를 듣고 있는 내용과 거의

틀린것 없이 테이블의 구성이 맞더라구요...

삭제된 후로는 테스트를 못하고 있습니다 ㅠㅠ

살릴 수 없다면 테스트서버를 아예 날려버리고 다시 설치하는 방법이 있을까요?

혹은 다른 방법이 있다면 어떤 방법이 있을까요?

도와주세요..ㅠㅠ 열심히 배워서 대한민국  DB발전에 기여하는 사람이 되겠습니다 ㅠㅠ

by 서성우 [2009.10.07 10:16:41]
CREATE TABLE emp (
empno NUMBER(4,0) NOT NULL,
ename VARCHAR2(10) NULL,
job VARCHAR2(9) NULL,
mgr NUMBER(4,0) NULL,
hiredate DATE NULL,
sal NUMBER(7,2) NULL,
comm NUMBER(7,2) NULL,
deptno NUMBER(2,0) NULL
)
/

CREATE INDEX emp_deptno
ON emp (
deptno
)
/

ALTER TABLE emp
ADD CONSTRAINT pk_emp PRIMARY KEY (
empno
)
/

ALTER TABLE emp
ADD CONSTRAINT fk_deptno FOREIGN KEY (
deptno
) REFERENCES dept (
deptno
)
/

CREATE OR REPLACE TRIGGER emp_update
BEFORE UPDATE OR INSERT OR DELETE ON emp
FOR EACH ROW
BEGIN

IF inserting THEN
INSERT INTO emp2 VALUES (:OLD.empno , :OLD.ename , :OLD.job , :OLD.mgr,
To_Date(:OLD.hiredate),:OLD.sal , :OLD.comm ,:OLD.deptno);

ELSIF UPDATING THEN
INSERT INTO emp2 VALUES (:OLD.empno , :OLD.ename , :OLD.job , :OLD.mgr,
To_Date(:OLD.hiredate),:OLD.sal , :OLD.comm ,:OLD.deptno);

ELSIF DELETING then
INSERT INTO emp2 VALUES (:OLD.empno , :OLD.ename , :OLD.job , :OLD.mgr,
To_Date(:OLD.hiredate),:OLD.sal , :OLD.comm ,:OLD.deptno);
END IF;
EXCEPTION
WHEN OTHERS THEN
Dbms_Output.put_line(SQLERRM);

END;
/

emp의 테이블 구성은 이렇게 되어 있습니다
위와 같이 구성하세요.

by 도명 [2009.10.07 10:42:29]
서성우님 정말 감사합니다!!
님 덕분에 다시 테스트를 할 수 있게 되었습니다!!
즐거운 하루 보내세요
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입