我有一个存储过程,它调用UPDATE(或INSERT或DELETE)语句,我想将此语句更新的行数存储在语言环境变量中。
这不起作用,因为INSERT是一个语句,不能作为表达式进行求值:
CREATE PROCEDURE f()
MODIFIES SQL DATA
BEGIN ATOMIC
DECLARE rows_updated INT;
SET rows_updated = (INSERT INTO my_table VALUES(1,2));
...
END;
其他SQL引擎似乎有一个名为“@@ rowcount”的“元变量”来检索由事务的最后一个UPDATE / INSERT / DELETE语句更新的行数。我还没有找到HSQL中的等价物。
有任何线索吗?
答案 0 :(得分:1)
HSQLDB遵循SQL:2008标准。您可以使用GET DIAGNOSTICS语句设置rows_updated变量。还有一个模仿这个陈述的函数。
见这里:
http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_diagnostics_state