DB_common::nextId()

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

Synopsis

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

Description

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

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

Parameter

string $seq_name

シーケンスの名前。

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

boolean $onDemand

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

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

Return value

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

Throws

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

Note

This function can not be called statically.

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

Example

nextId() の使用法

<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$id $db->nextId('mySequence');
if (
PEAR::isError($id)) {
    die(
$id->getMessage());
}

// INSERT クエリで ID を使用します
$res =& $db->query("INSERT INTO myTable (id, text) VALUES ($id, 'foo')");
?>
データベースに LIMIT クエリを送信する (Previous) DB ドライバに、次のクエリがデータ操作クエリであることを通知する (Next)
Last updated: Wed, 01 Oct 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.