HSQLDB触发器更新后意外令牌:FROM required:INTO

时间:2012-09-20 21:34:36

标签: sql triggers hsqldb

我尝试在HsqlDB中构建此触发器,没有SELECT语句它工作正常但是当我输入一个select语句时我得到了这个错误意外令牌:FROM required:INTO

 CREATE TRIGGER PUBLIC.TRIGGERNAME AFTER UPDATE ON PUBLIC.CLIENTE_OFFERENTE 
 REFERENCING NEW ROW AS NUOVO 
     FOR EACH ROW 
           BEGIN ATOMIC 
               IF NUOVO.STATO='Venduto'
                              THEN
                              (SELECT IDIMMOBILE AS IDIMM FROM OFFERTA WHERE IDOFFERTA=NUOVO.IDOFFERTA); 
                            INSERT INTO PUBLIC.VENDITE(IDCLIENTE,IDIMMOBILE)VALUES(NUOVO.IDCLIENTE,IDIMM);END IF;END$

1 个答案:

答案 0 :(得分:0)

这里不允许使用普通的SELECT语句,因为它们什么都不做。

你需要这样的东西:

BEGIN ATOMIC 
    DECLARE VAR_IDIMM INT;
    IF NUOVO.STATO='Venduto' THEN
        SELECT IDIMMOBILE INTO VAR_IDIMM FROM OFFERTA WHERE IDOFFERTA=NUOVO.IDOFFERTA; 
        INSERT INTO PUBLIC.VENDITE(IDCLIENTE,IDIMMOBILE)VALUES(NUOVO.IDCLIENTE,VAR_IDIMM);
    END IF;
END

选择VAR_IDIMM的正确类型与IDIMMOBILI列相同。使用最新的HSQLDB 2.2.9。