2012-04-27 14 views
4

私は、テストの目的のためにHSQLデータベースで働いています。私はスタンドアロンのdbファイルが欲しい。 HSQLに - (アイデンティティ自動増分) しかし、今、私は最後に挿入された行のIDを取得するためにトラブルにしています。どのように私はIDを得ることができますか?最後に挿入された(自動インクリメントされた)行IDをHSQLで返す方法は?

+1

私は解決策を得ました。 CALL IDENTITY();挿入行の後 ....(これは最後に挿入行IDを与える) –

答えて

-4

それはあなたのテーブルスキーマを与えられていないときにこれを実行するためのクエリを記述することはかなり難しいですが、以下のようなもの:へ

SELECT TOP 1 Id FROM [TABLENAME] ORDER BY Id DESC 
+0

いい仕事........ –

+0

これが働くかもしれないが、生成され得るために、より高価な方法を想像するのは難しいだろう身元。さらに、行が表から削除された場合、生成された次の識別値が常に最大になるという保証はありません。かかわらず、あなたは、常にこの問題が発生します挿入された最後の行のIDを取得するために使用される方法の - – scottb

+0

は、「生成される次のID値は常に最大になるという保証はありません」。 – weenoid

16

http://www.hsqldb.org/doc/guide/ch09.html

最後に挿入された値(IDが ID列の場合) はIDENTITY()関数を使用して使用できます。

INSERT INTOテスト(ID、名前)VALUES(NULL、 'Test');
CALLアイデンティティ()。

関連する問題