2011-11-12 3 views
1

다른 테이블에 레코드를 추가합니다 :트리거는 자동으로 I 테이블이있어

사용자가 Items 테이블에 레코드를 추가하면 트리거는 itemAvailability 테이블에 레코드를 자동으로 추가해야합니다. itemAvailability.itemID = Items.itemID

는 순간 나는이 시점에 와서 붙어 :

CREATE TRIGGER updateItemsAvailabilityTbl AFTER INSERT ON items 
BEGIN 
INSERT INTO itemAvailability (itemID) 
VALUES (items.itemID) 
END 

아니라, 나를 위해 작동하지 않습니다. 도와주세요.

답변

1

CREATE TRIGGER 문에 두 가지 오류가 있습니다. 이 삽입되는 행의 요소에 액세스 할 수있다 documentation

트리거 동작에 기록 된 바와 같이 1. 삭제 또는 형태 "NEW.column 이름"에 대한 참조를 사용하여 갱신하고 "OLD.column 이름 "여기서 column-name은 트리거가 연결된 테이블 의 열 이름입니다.

INSERT NEW 참조

UPDATE NEW 및 OLD 참조를 사용할 수

이 OLD 참조를 제거하다 유효한 다음과 같이 OLD와 NEW 참조 만, 그들이 관련된 에 대한 이벤트를 트리거로 사용할 수 있습니다 유효한

따라서 items.itemID 대신 new.itemID을 써야합니다. 2. INSERT INTO 문은 세미콜론으로 끝나야합니다. 사용해보기 :

CREATE TRIGGER updateItemsAvailabilityTbl AFTER INSERT ON items 
BEGIN 
INSERT INTO itemAvailability (itemID) 
VALUES (new.itemID); 
END 
+0

고맙습니다. 그것은 작동한다. – NCFUSN

관련 문제