2010-02-03 3 views
1

PHP에서 postgresql 'nextval'로 작업하려고합니다. nextval ('schemadb.audit_txn_seq')의 값으로 TXN_ID를 대체하기 위해 세 번째 행의 괄호를 어떻게 채울 수 있습니까?postgresql nextval 질문 시퀀스에

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

고마워요!

답변

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'))"); 
+0

작동하지 않는 것 같습니다. 어쨌든 "$ DB-> 쿼리 ("SELECT nextval ('schemadb.audit_txn_seq') ");"의 결과를 저장할 수 있습니까? PHP 변수에? – littleK

+0

한 걸음 뒤로 물러서십시오. 너 정확히 뭘 하려구? 시퀀스의 다음 값에 대한 ID를 얻고 싶습니까? –

+0

시퀀스에서 currval의 ID를 가져 오려고합니다. 이전에 게시 한 내용은 작동하지 않으므로 PHP 변수에 currval 시퀀스를 저장할 수 있는지 확인하려고합니다. 감사! – littleK

1

당신은 $DB 변수가 무엇인지 말해주지 않았다. PDO를 사용하고있는 것 같습니다.

"질문의 결과를 PHP 변수에 저장해야합니까?"라는 질문은 일종의 초보자 용 질문이며 쉽게 대답 할 수 있습니다. the manual.

당신은 이해해야합니다, 즉 (보기의 PHP의 관점에서)

SELECT nextval('schemadb.audit_txn_seq') 

SELECT xcolumn FROM xtable LIMIT 1 

당신은 어떤 쿼리에서 데이터 값을 가져하려면

사이에는 차이가 없다, 당신은 그것을 할 항상 같은, 표준 방법 :

  1. 쿼리
  2. 실행
  3. 가져 오기

도움이 되길 바랍니다.

0

나는 ALL DEFERRED SET 제약 조건과의 상호 작용에 대해 잘 모르겠지만, 당신은이 일을 시도 :

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

문제는 지금 "undo_transaction"무엇을 반환하지됩니다? 성공적으로 완료되면 트랜잭션 ID를 반환하면 갈 수 있습니다.