2011-12-11 1 views
0

奇妙なエラーが発生しました "相関名 'クラブ'が見つかりませんでしたが、クラブがデータベースにあります。私はこの問題は、値を挿入した後だと思う: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'が同じであるか、エラーが出るということでした。 今すぐ作業する必要があります: UPDATEクラブSET名=(SELECT id FROM場所=名前。itemress) WHERE Name = item.name; 新しいアドレスの場合、ランダムIDが作成され、クラブはすべてのアドレスが格納されているテーブルからIDを取得します。 – Slavak

答えて

0

問題は、SET placeWHERE Nameが同じである必要があります。そうでないとエラーになります。今動作するはずです:

UPDATEクラブセット名= 名= item.name(名= item.address場所からIDを選択します)。

新しいアドレスの場合、ランダムIDが作成され、クラブはすべてのアドレスが格納されているテーブルからIDを取得します。

関連する問題