2014-04-01 2 views
2

Im은 SQL/PL 개발자를 사용하고 있고 Appeal이라는 테이블이 있습니다.이 테이블에는 OpenDate 및 CloseDate라는 2 개의 특성이 있습니다. 그리고 열린 날짜가 마감 날짜보다 작아 지도록 제약 조건을 추가하고 싶습니다. 이 테이블에 많은 기록이 있습니다.SQL oracle이 기존 테이블에 check 제약 조건을 추가했습니다.

이 내 코드입니다 :

alter table appeal 
add constraint Check_Dates 
check (OpenDate < CloseDate) 

내가 말하는 오류 ko를 얻을 : ORA-02293 : 유효성을 검사 할 수 없습니다 (STSTEM.CHECK_DATES) - 체크 제약 조건이

어떤 ieads을 위반? 고맙습니다

답변

3
귀하의 제약 조건이 잘 보이는

, 나는 그것을 테스트 한 :

스키마 생성 실패 : ORA-02290 : 여기에 결과

create table appeal (OpenDate date, CloseDate date); 

alter table appeal 
add constraint Check_Dates 
check (OpenDate < CloseDate); 

insert into appeal values (sysdate, sysdate - 1); 

그리고

제약 을 확인 (USER_4_44096.CHECK_DATES) 위반 됨

OpenDat로 이미 행이있는 것보다 문제가 있습니다. e < 데이터베이스의 CloseDate 값. 제약 조건을 만들기 전에 수정하십시오. 봐 행동 변화 문장은 주문 : 여기

create table appeal (OpenDate date, CloseDate date); 

insert into appeal values (sysdate, sysdate - 1); 

alter table appeal 
add constraint Check_Dates 
check (OpenDate < CloseDate); 

그리고 문제 :

스키마 생성 실패 : ORA-02293 : (USER_4_E4450.CHECK_DATES를) 확인할 수 없습니다 - 제약

+0

는 내가 보는 CHECK에 해당 할 것입니다 ...하지만 난 이미 구속가 추가되기 전에 내가 삽입 된 테이블의 데이터를 가지고, 그래서 수 문제가 되니? – Shmuli

+0

예, 이것이 문제입니다. 대답에 대해 지금 설명했습니다. – danihp

+0

대단히 감사합니다. – Shmuli

0
을 위반 확인

시험해보십시오 테이블 호소하기 제약 추가하기 Check_Dates check (OpenDate < CloseDate) 애비뉴 NOVALIDATE;

당신은 오류를 이전 데이터를 확인하지만, 새로운 데이터

관련 문제