1

PHPでpostgresql'nextval'を使用しようとしています。TXN_IDをnextval('schemadb.audit_txn_seq')の値に置き換えるために、3行目の括弧を入力するにはどうすればよいですか?

$DB->query("SELECT nextval('schemadb.audit_txn_seq')");
$DB->query('SET CONSTRAINTS ALL DEFERRED');
$DB->query('SELECT schemadb.undo_transaction(TXN_ID)');

ありがとう!

4

3 に答える 3

1

$DB変数とは何かを教えてくれませんでした。PDOを使用していると思います。

「クエリの結果をphp変数に保存する方法はありますか」という質問は初心者の質問であり、マニュアルで簡単に回答できます。

(PHP の観点からは) 間に違いはないことを理解する必要があります。

SELECT nextval('schemadb.audit_txn_seq')

SELECT xcolumn FROM xtable LIMIT 1

ANY クエリからデータ値をフェッチする場合は、常に同じ標準的な方法で行います。

  1. クエリ
  2. 実行する
  3. フェッチ

それが役立つことを願っています。

于 2010-02-03T18:56:08.887 に答える
0

SET CONSTRAINTS ALL DEFERRED とのやり取りについてはよくわかりませんが、これを試してみましたか:

SELECT schemadb.undo_transaction(nextval('schemadb.audit_txn_seq'))

問題は、「undo_transaction」が何を返すかです。正常に完了してトランザクション ID が返されれば、準備完了です。

于 2010-02-03T23:44:13.153 に答える
0

試す:

$DB->query("SELECT nextval('schemadb.audit_txn_seq')");
$DB->query('SET CONSTRAINTS ALL DEFERRED');
$DB->query("SELECT schemadb.undo_transaction( currval('schemadb.audit_txn_seq') )");
于 2010-02-03T01:59:03.603 に答える