반응형
업데이트 쿼리의 SQL 트리거에 오류가 있습니다.
다음 SQL 트리거가 작동하지 않습니다.오류가 발생했습니다.
SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 "7행" 근처에서 사용할 올바른 구문을 확인하십시오.
CREATE TRIGGER m_check BEFORE UPDATE ON deposition
FOR EACH ROW
BEGIN
IF((new.balance-old.balance)<0 AND(new.balance-old.balance)>=-2000) THEN
SIGNAL SQLSTATE "40000"
SET MESSAGE_TEXT='Not okay';
ELSE
UPDATE deposition SET balance=new.balance WHERE acc_no = new.acc_no;
END IF;
END
어디에 문제가 있는지 이해할 수 없습니다.이 오류를 해결하는 데 도움
7호선이 뭔지 잘 모르겠어요.하지만, 그update
적합하지 않습니다.대신:
DELIMITER $$
CREATE TRIGGER m_check BEFORE UPDATE ON deposition
FOR EACH ROW
BEGIN
IF((new.balance - old.balance) < 0 AND (new.balance-old.balance) >= -2000) THEN
SIGNAL SQLSTATE "40000" SET MESSAGE_TEXT = 'Not okay';
END IF;
END$$
DELIMITER ;
업데이트 전 트리거입니다.신호가 발생하지 않고 오류가 발생하지 않으면 업데이트가 수행됩니다.명시적으로 할 필요가 없습니다.update
.
언급URL : https://stackoverflow.com/questions/57949420/i-have-an-error-in-sql-trigger-on-update-query
반응형
'programing' 카테고리의 다른 글
NLS_NCHAR_CHARACSET과 NLS_CHARACSET for Oracle 간의 차이 (0) | 2023.07.24 |
---|---|
MariaDB Left join이 예상 결과를 반환하지 않음 (0) | 2023.07.24 |
Prepared Statement에서 매개 변수 설정이 작동하지 않음 (0) | 2023.07.24 |
대형 MySQL InnoDB 테이블 변경 (0) | 2023.07.24 |
fragment의 onCreate(), onCreateView() 및 onActivityCreated()의 차이점 및 사용 (0) | 2023.07.24 |