DB/Oracle
[10g] Creating and Altering a Constraint
Edward. K
2007. 5. 17. 15:58
반응형
Mysql 로 개발했던 넘을 ORACLE로 바꿔 본다..
간만에 ORACLE 쿼리문을 만들어서 데이터를 넣었는데..오류가 발생했다...
ORA-04098: 'EDUOLD.BI_TBL_USERINFO' 트리거가 부적합하며 재검증을 실패했습니다
흐음..재미있는 버그들(정확하게는 오류가 아닌..ㅡ,.ㅡ;)
이넘들 자연으로 풀어주기 위해 제약조건없이 테이블을 생성하기로 한다.
기본 테이블로만 테이블을 생성해주고 테스트 진행하기로 하고..
그간 잊었던 쿼리문을 찾아보자...--+
테이블 제약조건 생성.
= Oracle 10g Help Topic 에서 발췌 =
Creating and Altering a Constraint With SQL
Creating, Altering, and Dropping Constraints Using SQL
-- add a primary key constraint
ALTER TABLE personal_info
ADD CONSTRAINT personal_info_pkey
PRIMARY KEY (employee_id);
-- add a foreign key constraint
ALTER TABLE personal_info
ADD CONSTRAINT personal_info_fkey
FOREIGN KEY (employee_id) REFERENCES employees (employee_id)
ON DELETE CASCADE;
-- add a unique constraint
ALTER TABLE personal_info
ADD CONSTRAINT personal_info_unique_con
UNIQUE (social_security_id);
-- add a check constraint
ALTER TABLE personal_info
ADD CONSTRAINT personal_info_check_con
CHECK ( dependents_claimed > 0);
-- disable a constraint
ALTER TABLE personal_info
DISABLE CONSTRAINT personal_info_check_con;
-- enable a constraint
ALTER TABLE personal_info
ENABLE CONSTRAINT personal_info_check_con;
-- drop a constraint
ALTER TABLE personal_info
DROP CONSTRAINT personal_info_check_con;
___________________________________
-- 파란색 라인이 지워지고...
CREATE TABLE "USER" (
"ID" VARCHAR(20) NOT NULL ENABLE,
"GROUP" VARCHAR(20) NOT NULL ENABLE
CONSTRAINT "USER_PK" PRIMARY KEY ("ID") ENABLE
)
CREATE TABLE "USERINFO" (
"NO" NUMBER(8,0) NOT NULL ENABLE,
"ID" VARCHAR(20) NOT NULL ENABLE,
"PASS" VARCHAR(20) NOT NULL ENABLE,
"NAME" VARCHAR(12) NOT NULL ENABLE ,
CONSTRAINT "USERINFO_PK" PRIMARY KEY ("NO") ENABLE,
CONSTRAINT "USERINFO_FK" FOREIGN KEY ("ID")
REFERENCES "USER" ("ID") ENABLE
)
------
기본테이블로 테스트를 진행한담에.. (제약전, 데이터 잘 처리하나 보려구.^^;;)
차후에 다음과 같이 제약조건을 추가하기로 한다..
ALTER TABLE USER
ADD CONSTRAINT USER_PK
PRIMARY KEY (ID);
ALTER TABLE USERINFO
ADD CONSTRAINT USERINFO_PK
PRIMARY KEY (NO);
ALTER TABLE USERINFO
ADD CONSTRAINT USERINFO_FK
FOREIGN KEY (ID) REFERENCES USER (ID)
ON DELETE CASCADE;
반응형