2011-12-11 5 views
0

이상한 오류가 발생했습니다. "상관 관계 이름 '클럽'을 찾을 수 없음 '이지만 클럽 테이블이 DB에 있습니다.isql (어디서나 sql) 트리거가 오류를냅니다.

ALTER TRIGGER "tg_add_club" AFTER INSERT, 
UPDATE ON Club 
REFERENCING NEW AS item 
FOR EACH ROW 
WHEN (item.address NOT IN (SELECT name FROM Place)) 
BEGIN 
//DECLARE i_id INTEGER; 
INSERT INTO Place(name) 
VALUES (item.address); 
//SELECT @@identity INTO i_id; 
UPDATE Club SET place = (SELECT id FROM Place WHERE name=item.address) 
WHERE Name = item.name; //AND Place.name = item.address; 
END 

내가 문제가 VALUES (item.address) 후 어딘가에 생각하지만, 나는 확실하지 않다 : 나는 문제가 값을 삽입 한 후 생각합니다.

다른 것들을 시도했지만 여전히 효과가 없습니다. 읽어 주셔서 감사합니다!

+0

문제는 'SET place'와 'WHERE Name'이 같아야한다는 것입니다. 그렇지 않으면 오류가 발생합니다. 지금 작업해야 함 : 업데이트 됨 클럽 SET 이름 = (SELECT id FROM 이름 = item.address 장소) WHERE Name = item.name; 새 주소 인 경우 임의의 ID가 생성되고 클럽은 테이블에서 모든 주소가 저장된 ID를 가져옵니다. – Slavak

답변

0

문제는 SET placeWHERE Name이 동일해야합니다. 그렇지 않으면 오류가 발생합니다. 지금 작동합니다 :

UPDATE 클럽 SET 이름 = (곳에서 ID를 선택 WHERE 이름 = item.address) WHERE 이름 = item.name;

새 주소 인 경우 임의의 ID가 생성되고 클럽은 모든 주소가 저장된 ID를 테이블에서 가져옵니다.