반응형
마리아에 삽입하기 전 트리거DB
새 행을 삽입하기 전에 새 트리거를 만드는 데 문제가 있습니다.삽입 전에 동일한 표의 다른 행에서 이미 참조된 값을 가진 새 행의 삽입을 중지해야 합니다.이 트리거를 사용하려고 했지만 mariaDB와 호환되지 않아 참조 시 비동기 오류가 발생합니다.
CREATE TRIGGER BadgeAlreadyUsed
BEFORE INSERT ON User
REFERENCING NEW AS N
FOR EACH ROW
WHEN (EXISTS ( SELECT IDBadge FROM User WHERE N.IDBadge = User.IDBadge ))
SIGNAL SQLSTATE '70002' ('Badge already used!!');
새로운 구문으로 같은 작업을 수행할 수 있는 방법은 무엇입니까? 감사합니다.
각 데이터베이스(DB2, MariaDB 등)에는 수백 가지의 차이점이 있습니다.아무 추정도 하지 마!
이것이 더 가까울 수 있습니다.
CREATE TRIGGER BadgeAlreadyUsed
BEFORE INSERT ON User
FOR EACH ROW
BEGIN
IF (EXISTS ( SELECT IDBadge FROM User
WHERE NEW.IDBadge = User.IDBadge ))
THEN
SIGNAL SQLSTATE '70002'
SET MESSAGE_TEXT = 'Badge already used!!';
END IF;
END;
최소 3개 이상의 구문 변경 사항이 있습니다(WHEN
,NEW
,SET
).
언급URL : https://stackoverflow.com/questions/46957371/trigger-before-insert-in-mariadb
반응형
'sourcetip' 카테고리의 다른 글
확인란의 확인된 변경 이벤트 잡기 (0) | 2023.10.10 |
---|---|
첫 번째 직접 자식만을 위한 CSS 셀렉터가 있습니까? (0) | 2023.10.10 |
wocommerce_before_cart 동작 수정 방법 (0) | 2023.10.10 |
iOS7 UIswitch its Event Value Changed: 계속 전화하는 것이 이 버그인가요 아니면 뭐인가요? (0) | 2023.10.10 |
jQuery Validate로 암호 확인 (0) | 2023.10.05 |