dizilerine postgresql nextval soru

3 Cevap php

Ben postgresql 'nextval' PHP ile çalışmak için çalışıyorum. ('Schemadb.audit_txn_seq') nextval değeri ile TXN_ID değiştirmek amacıyla Nasıl üçüncü satırında parantez içinde doldurabilir?

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

Teşekkürler!

3 Cevap

Sen $DB değişkeni ne olduğunu bize söylemedi. Ben PDO kullanıyorsunuz sanırım.

Soru acemi soru türüdür "php değişken içine sorgunun sonucunu saklamak için yine de var mı", ve easilly the manual cevaplanır.

Sen (bakış PHP'nin açısından) arasında hiçbir fark olmadığı, anlamak gerekir

SELECT nextval('schemadb.audit_txn_seq')

ve

SELECT xcolumn FROM xtable LIMIT 1

HERHANGİ bir sorgudan veri değerlerini almak istiyorsanız, her zaman aynı, standart bir şekilde bunu:

  1. sorgu
  2. gerçekleştirmek
  3. almak

Umut olur.

Deneyin:

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

Ben TÜM ERTELENEN SET kısıtlamaları ile etkileşimi hakkında emin değilim, ama bunu yaparken denedim:

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

Soru "undo_transaction" ne çıkmıyor artık? Başarılı tamamlayan işlem kimliğini dönerse, o zaman gitmek için iyi bir konum!