반응형
여기서는 데이터베이스에 레코드를 삽입하기 전에 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
반응형
'MySql' 카테고리의 다른 글
MySQL 서로 다른 데이터베이스 간의 MySQL InnoDB 외래 키 (0) | 2020.11.03 |
---|---|
MySQL [Docker] : MySQL에 PHPMyAdmin 연결이 작동하지 않음 (0) | 2020.11.03 |
MySQL 엔터티 프레임 워크를 사용하여 저장 프로 시저 실행 (0) | 2020.11.03 |
MySQL 쿼리 날짜> = 90 일 (0) | 2020.11.03 |
MySQL FLOAT 데이터에 SUM 사용 (0) | 2020.11.03 |
댓글