DB_common::nextId()

DB_common::nextId() -- シーケンスの次の値を返す

概要

integer nextId (string $seq_name, boolean $onDemand = TRUE)

説明

シーケンスから、次に使用可能な値を返します。このメソッドが コールされるたびにシーケンスは自動的に加算されます。

詳細な説明は、"導入 - シーケンス" を参照ください。

パラメータ

string $seq_name

シーケンスの名前。

データベースの違いによる問題を避けるため、シーケンス名の 最初には英字のみを使用するようにし、またそれ以降も 英数字とアンダースコア文字のみを使用するようにしましょう。

boolean $onDemand

TRUE を設定すると、指定したシーケンスが存在しない場合には 自動的に作成されます。

この機能を使用するには、スクリプトで指定したデータベースユーザが テーブルやシーケンスを作成する権限を持っている必要があります。 必要な検眼は、使用している DBMS に依存します。

返り値

integer - 使用可能な ID 番号、あるいは 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 39-1PEAR_Error の値

エラーコードエラーメッセージ原因対応法
DB_ERROR_NOT_CAPABLE DB backend not capable この機能は、データベースバックエンドではサポートされていません。 もしほんとうにこの機能が必要であれば、 別のデータベースシステムを使用しましょう。
DB_ERROR_NOT_LOCKED not locked シーケンステーブルが見つけられません。 データベース固有のエラーです。使用しているデータベースの ドキュメントを参照ください。
DB_ERROR_NOSUCHTABLE no such table シーケンステーブルが見つかりませんでした。 新しいシーケンスを作成してください。もしシーケンスが存在することが 確かなのであれば、データベースの状態を確認してみましょう。

注意

この関数は、スタティックにコールする ことはできません。

警告

PEAR DB のシーケンスメソッドを使用する場合には、シーケンスの作成も 含めたすべての処理にこれらのメソッドを用いることを強く推奨します。 DBMS で直接作成したシーケンスに対して PEAR DB のメソッドで アクセスすることは避けてください。完全な情報は、 "導入 - シーケンス" のページの警告を参照ください

参照

"導入 - シーケンス" createSequence() dropSequence()