나는 트리거를 만들려고했지만 시도는 실패했습니다. 오류가 발생하는 것 같습니다 (# 1064). 나는 해결책이 없습니다. 누군가가 구문에서 어떤 결함을 설명하거나 설명 할 수 있습니까?SQL 내에서 트리거를 만드는 방법
저를 지정할 수 있습니다 : I 배달 테이블, 나는 또한 entry_log 테이블의 외래 키로 delivery_id 한에서 기본 키로 delivery_id 한
. (true의 경우) 모두의 id를 비교함으로써 는 텍스트가 비트의 출력을 참조합니다 (0 또는 1)
DELIMITER //
DROP TRIGGER IF EXISTS entry_trigger//
CREATE TRIGGER entry_trigger BEFORE INSERT ON entry_log
FOR EACH ROW
BEGIN
DECLARE @xentry VARCHAR(45)
DECLARE @inta bit
SET @inta = SELECT allowed
FROM delivery
WHERE delivery.delivery_id = entry_log.delivery_id;
CASE
when @inta = 0 then @xentry = 'Acces Denied'
when @inta = 1 then @xentry = 'Acces Allowed'
END CASE
INSERT INTO entry_log(entry_time,access_allowed) VALUES(now(),@xentry);
END
//
해당 CASE 문도 문제입니까? IF 문이 아니거나 다음 INSERT에 CASE가 삽입되어 있습니까? – MatBailie
잘 모르겠습니다. 방금 첫 번째 문제를 보았습니다. 더 있습니다. 내가 대답을 업데이 트에 주소를 – luksch
나는 끝으로 변경했습니다 : 나는 여전히 라인 5 (# 1064)에 오류가 나타납니다 – theone