• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    해결됨

제약조건 질문있습니다.

19.12.22 23:44 작성 조회수 274

0

강의 후반부에

create table test_table50(

data1 int not null,

data2 int not null,

constraint chk1 check (data1 > 10),

constraint chk2 check (data2 in(10,20,30))

);

insert into test_table50(data1, data2) values(20,30);

select * from test_table50;

insert into test_table50(data1, data2) values(1, 100);

저같은 경우는 마지막에 insert가 안되는데 강의에서는 1,100이 삽입되는데요.

설명하신 바로는 다른db는 check 제약조건을 무시되지 않지만 mysql은 무시가 된다고 하셨는데 

제 에러 메시지에는

아래와 같이 에러메시지가 출력되서요.

이유를 알 수 있을까요?

0 121 23:41:27 insert into test_table50(data1, data2) values(1, 100) Error Code: 3819. Check constraint 'chk1' is violated. 0.000 sec

답변 1

답변을 작성해보세요.

0

nury님의 프로필

nury

지식공유자

2019.12.23

안녕하세요...

강의 촬영시 사용했던 MySQL 버전은 5.7 이고 현재는 8.0 버전입니다.

버전이 업데이트 되면서 check 제약조건도 잘 동작하는 것으로 변경되었습니다.

하지만 프로젝트에서 항상 최신버전을 이용하는 것은 아니기 때문에 과거 버전의 내용도 알아두시면 좋습니다.

프로젝트때 사용하시는 버전을 확인하시고 check 제약조건 사용 여부를 결정해주시면 되겠습니다. 감사합니다^^