質問 |
||
| 質問者:oops1967 | LASTVAL()の使い方 | |
|---|---|---|
困り度:
|
こんにちは。 現在、バッチで伝票を登録するプログラムを組んでいます。 実施したい内容は、伝票番号を採番し、伝票テーブルと伝票明細テーブルにデータを書き込むと言う物です。 具体的には、以下のテーブルです。 1.TRN_DENPYO DENPYO_NO DENPYO_HIDUKE 2.TRN_DENPYO_MEISAI DENPYO_NO DENPYO_MAISAI_NO DENPYO_SYOHINCD ※TRN_DENPYOのDENPYO_NOはserialです。 そこで、TRN_DENPYO にレコードを追加した後、自動的にカウントアップされるTRN_DENPYOのDENPYO_NOを取得するために LASTVAL()を使用したいのですが、うまく行きません。 以下、実際に記述しているSQL文です。 $sql = 'INSERT INTO "TRN_DENPYO"("DENPYO_HIDUKE")VALUES(' . $denpyo_hiduke . ')'; $db->query($sql); $sql = 'SELECT LASTVAL()'; $result =& $db->query($sql); while($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) { $denpyo_no = $row['LASTVAL()']; } echo $denpyo_no; この時点で、$denpyo_no の値が表示されると思っているのですが、表示されません。 どなたか教えて頂けませんでしょうか? ちなみに環境は、PostgerSQL8.2 php5を使用しています。 |
|
質問投稿日時:08/03/25 17:44 質問番号:3893811 |
||
回答良回答20pt |
|
| 回答者:chukenkenkou | LASTVAL()は、マニュアルを見る限りPostgreSQL 8.3から登場しているようですが? $sql = 'SELECT LASTVAL()'; $denpyo_no = $row['LASTVAL()']; 一般的には、 SELECT LASTVAL() AS LV のように別名を付け、 $denpyo_no = $row['LV']; のように別名で参照します。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/26 22:43 回答番号:No.1 |
|
| この回答への補足 | chukenkenkouさま ご回答ありがとうございます。 別名をつけるのですね! 勉強になりました(というか、こんな質問をして恥ずかしいです) マニュアルを見ると8.1.0に書かれていたので使えると、 実際に試してみても関数関係のエラーにならないので、 これは、私の使い方が悪いのだと思っていました。 ありがとうございました。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |