반응형
MySQL 트리거 행 필드가 존재하는지 확인
다음과 같이 테이블에 트리거를 만들었습니다.
delimiter //
CREATE TRIGGER tb_ins BEFORE UPDATE ON tb
FOR EACH ROW
BEGIN
IF (NEW.size <> size) THEN
END IF;
END;//
문제는 다음 이외의 필드를 개별적으로 업데이트하는 것입니다.size
해당 필드를 찾을 수 없다는 오류가 나타납니다.
예를 들어 다음과 같습니다.
UPDATE tb SET color = 'red' WHERE id = 1;
업데이트에 다음 필드가 포함되어 있지 않아 필드를 찾을 수 없다는 오류가 나타납니다.size
트리거가 필요로 하는 필드입니다.
특정한 것이 있는지 확인할 방법이 있는지 알아야 합니다.ROW
필드는 내 트리거 함수에 존재합니다.이것은 어떻게 이루어 질 수 있습니까?
나는 다음과 같은 것이 필요합니다.
IF EXISTS(ROW.size) THEN
END IF;
이 오류는 UPDATE 문에 참조된 열과 관련이 없습니다.
가장 큰 문제는 다음과 같은 부적격한 언급입니다.size
방아쇠 몸체에.다음에 할당된 값의 변경을 감지하려는 경우size
, 우리는 다음의 가치를 비교해야 합니다.NEW.size
로.OLD.size
.
DELIMITER $$
DROP TRIGGER IF EXISTS tb_ins $$
CREATE TRIGGER tb_ins
BEFORE UPDATE ON tb
FOR EACH ROW
BEGIN
IF NOT (NEW.size <=> OLD.size) THEN
-- value of size column has been modified
BEGIN END;
END IF;
END$$
그 사이에 아무 것도 없는 것은 타당하지 않습니다.THEN
그리고.END IF
. 우리는 거기에 뭔가를 가지고 있어야 합니다.MySQL은 비어 있음을 허용합니다.BEGIN
END;
우리가 그걸 노옵으로 사용할 수 있게 차단하는 겁니다.
무엇을 달성하려고 하는지 명확하지 않습니다.
언급URL : https://stackoverflow.com/questions/44191940/mysql-trigger-check-if-row-field-exists
반응형
'programing' 카테고리의 다른 글
사전 키가 열 레이블인 다중 인덱스 데이터 프레임에 중첩된 사전 (0) | 2023.11.02 |
---|---|
jQuery 토글 CSS? (0) | 2023.11.02 |
IntelliSense가 SQL Server Management Studio에서 작동하지 않습니다. (0) | 2023.11.02 |
jQuery.on('change'), 함수() {}이(가) 동적으로 생성된 입력에 대해 트리거되지 않음 (0) | 2023.11.02 |
릴리스 버전 iOS Swift에 대해 println()을 제거합니다. (0) | 2023.11.02 |