0

出现奇怪的错误“未找到相关名称‘俱乐部’”,但表俱乐部位于数据库中。我认为问题出在插入值之后:

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) 之后的某个地方,但我不确定。

用它尝试了不同的东西,但仍然没有任何效果。谢谢阅读!

4

1 回答 1

0

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

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

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

于 2012-03-15T18:26:04.780 回答