반응형
트리거를 만드는 데 약간의 문제가 있습니다. 몇 가지 변수를 선언 한 다음 일부 변수를 0으로 설정해야 조건에 따라 루프에서 값이 증가하기 시작하기 때문입니다. 어쨌든, 나는 코드와 그것이 던지는 오류를 붙여 넣을 것입니다. 누군가 내가 뭘 잘못하고 있는지 말해 줄 것입니다. 감사.
CREATE TRIGGER update_request AFTER UPDATE ON medical_tests
FOR EACH ROW
BEGIN
DECLARE y INT, x0 INT, x3 INT, counting INT
SET y=0, x0=0, x3=0,
counting = count(SELECT * FROM medical_tests WHERE medical_tests.request_id = UPDATED.request_id)
WHILE (y<counting)
BEGIN
SET y=y+1
IF (medical_tests.status=1)
BEGIN
SET x0=x0+1
END
ELSEIF (medical_tests.status=3)
BEGIN
SET x3=x3+1
END
END IF
END WHILE
IF (x0>0 AND x0<counting)
BEGIN
UPDATE requests SET status=2 WHERE requests.id=UPDATED.request_id
END
ELSEIF (x3=counting)
BEGIN
UPDATE requests SET status=3 WHERE requests.id=UPDATED.request_id
END
ENDIF
END
다음 오류가 발생합니다. # 1064-SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 'x0 INT, x3 INT, counting INT SET y = 0, x0 = 0, x3 = 0, counting = count (SELECT * FROM m'at line 삼.
지난번에 트리거를 작성했을 때 MySQL 서버에서 수행했으며 구문이 약간 다릅니다. 프로 시저를 만들고 대신 호출해야 할 수도 있습니다. 그래서 누구든지 도울 수 있다면 감사하겠습니다.
해결 방법
DECLARE y INT, x0 INT, x3 INT, counting INT
에
DECLARE y, x0, x3, counting INT DEFAULT 0;
이것은 기본값이 0
인 INT
유형의 4 개의 변수를 선언합니다.
그러나 그것은 시작에 불과합니다. 코드에는 몇 가지 다른 문제가 있습니다.
참조 페이지 https://stackoverflow.com/questions/19885752
반응형
'MySql' 카테고리의 다른 글
MySQLdb / Python INSERT 쿼리가 테이블에 데이터를 삽입하지 않음 (0) | 2020.12.18 |
---|---|
MySQL Mac 터미널에서 SQL 파일 실행 (0) | 2020.12.18 |
MySQL mysql 쿼리의 정의되지 않은 인덱스 오류 (0) | 2020.12.18 |
MySQL 트랜잭션 : 커밋 및 롤백 (0) | 2020.12.18 |
MySQL 두 번째 클릭시 라디오 버튼 선택 취소 (0) | 2020.12.18 |
댓글