とテーブル内の列の最大値を選択し、私は、列の最大値を検索し、1をインクリメントし、それを使用する必要が行の値が挿入されています。テーブルに行を挿入する間、私は、Oracleデータベース</p> <p>を使用していない行
INSERT INTO dts_route
(ROUTE_ID, ROUTE_UID, ROUTE_FOLDER)
VALUES (
(SELECT MAX(ROUTE_ID) + 1 FROM route) ,
ROUTE_UID,
ROUTE_FOLDER)
テーブルに少なくとも1つのエントリがある場合、これはうまくいきます。 しかし、テーブルにエントリがない場合はnullを返します。
テーブルにエントリがない場合、どのようにしてデフォルト値1を得ることができますか。あなたのルートのID奇数のギャップ
@changed並行性のあるシステムで重複した値を取得する危険性があるこの方法を使用することを警告する必要があります。リスクは同時トランザクションの数に比例します。私はそれがあなたが避けようとしているものであるようにあなたに警告します。 – jachguate