ホームページ >データベース >mysql チュートリアル >現在の Oracle シーケンス値をインクリメントせずに取得するにはどうすればよいですか?
増分せずに Oracle シーケンス値を取得する
Oracle シーケンスの現在値を増分せずに取得するには、次の SELECT ステートメントを使用します。関連するデータベース ビューの last_number 列。
シーケンス値を取得するには、次の手順に従います。手順:
SELECT last_number FROM all_sequences WHERE sequence_owner = '<sequence owner>' AND sequence_name = '<sequence_name>';
SELECT last_number FROM user_sequences WHERE sequence_name = '<sequence_name>';
注: user_sequences、all_sequences、およびdba_sequences ビューは、さまざまなシーケンス メタデータを提供します。
高度なテクニック (非推奨):
推奨されていませんが、一連の操作を使用することでこれをより確実に行うことができます。
SELECT increment_by I FROM user_sequences WHERE sequence_name = 'SEQ';
SELECT seq.nextval S FROM dual;
ALTER SEQUENCE seq INCREMENT BY -1;
SELECT seq.nextval S FROM dual;
ALTER SEQUENCE seq INCREMENT BY 1;
注意:この手法では、複数のユーザーがシーケンスに同時にアクセスしている場合に問題が発生する可能性があります。
以上が現在の Oracle シーケンス値をインクリメントせずに取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。