본문 바로가기
MySql

MySQL MySql 워크 벤치 CHECK 제약

by 베이스 공부 2020. 11. 3.
반응형

여기서는 데이터베이스에 레코드를 삽입하기 전에 2 개의 CHECK 제약 조건을 만들고 싶습니다.

ALTER TABLE SubjectEnrollment
ADD CONSTRAINT register CHECK (register <= classSize AND register >=0),
ADD CONSTRAINT available CHECK (available <= classSize AND available >= 0);

MySql Workbench에이 구문을 입력 할 때 "구문 오류 : 예기치 않은 'CHECK'(확인) '문제가 발생합니다. TRIGGER를 사용하여 어떻게 추가해야합니까?

감사합니다.

 

해결 방법

 

MySQL은 check 를 지원하지 않으므로이를위한 트리거가 필요합니다. 이 CREATE 트리거와 같은 것 :

delimiter $$
CREATE TRIGGER some_trigger_name
BEFORE INSERT ON SubjectEnrollment
FOR EACH ROW
BEGIN    
    IF (NEW.register > NEW.classSize OR NEW.register < 0)        
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'invalid data';
    END IF;
END
$$

UPDATE 에 대해 동일한 트리거를 정의해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/39055586

 

 

반응형

댓글