1

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 エンジンには、トランザクションの最後の UPDATE/INSERT/DELETE ステートメントによって更新された行数を取得する「@@rowcount」という「メタ変数」があるようです。HSQL に相当するものは見つかりませんでした。

どんな手掛かり?

4

1 に答える 1

1

HSQLDBは​​SQL:2008標準に準拠しています。GET DIAGNOSTICSステートメントを使用して、rows_updated変数を設定できます。このステートメントを模倣する関数もあります。

ここを参照してください:

http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_diagnostics_state

于 2012-05-02T19:00:22.210 に答える