isql(sql anywhere)触发器给出错误

时间:2011-12-11 13:53:41

标签: sql triggers sqlanywhere isql

得到了奇怪的错误“没有找到相关名称'俱乐部'”但桌子俱乐部在数据库中。我认为问题出在插入值之后:

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)之后,但我不确定。

尝试过不同的东西,但仍然无效。谢谢你的阅读!

1 个答案:

答案 0 :(得分:0)

问题是,SET placeWHERE Name应该相同,否则会给我错误。现在应该工作:

  

UPDATE Club SET Name =(SELECT id FROM Place WHERE name = item.address)   WHERE Name = item.name;

如果是新地址,则会生成随机ID,Club会从表中获取所有地址的ID。