PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

mysql_insert_id postgresql के लिए विकल्प

PostgreSQL के दृष्टिकोण से, छद्म कोड में:

 * $insert_id = INSERT...RETURNING foo_id;-- only works for PostgreSQL >= 8.2. 

 * INSERT...; $insert_id = SELECT lastval(); -- works for PostgreSQL >= 8.1

 * $insert_id = SELECT nextval('foo_seq'); INSERT INTO table (foo...) values ($insert_id...) for older PostgreSQL (and newer PostgreSQL)

pg_last_oid() केवल वहीं काम करता है जहां आपके पास ओआईडी है। PostgreSQL 8.1 के बाद से OID डिफ़ॉल्ट रूप से बंद हैं।

तो, आपके पास कौन सा PostgreSQL संस्करण है, इसके आधार पर आपको उपरोक्त विधि में से एक को चुनना चाहिए। आदर्श रूप से, निश्चित रूप से, डेटाबेस एब्स्ट्रैक्शन लाइब्रेरी का उपयोग करें जो उपरोक्त को दूर करता है। अन्यथा, निम्न स्तर के कोड में, ऐसा दिखता है:

पहला तरीका:INSERT... रिटर्निंग

// yes, we're not using pg_insert()
$result = pg_query($db, "INSERT INTO foo (bar) VALUES (123) RETURNING foo_id");
$insert_row = pg_fetch_row($result);
$insert_id = $insert_row[0];

विधि दो:INSERT; लास्टवल ()

$result = pg_execute($db, "INSERT INTO foo (bar) values (123);");
$insert_query = pg_query("SELECT lastval();");
$insert_row = pg_fetch_row($insert_query);
$insert_id = $insert_row[0];

विधि तीन:अगला (); सम्मिलित करें

$insert_query = pg_query($db, "SELECT nextval('foo_seq');");
$insert_row = pg_fetch_row($insert_query);
$insert_id = $insert_row[0];
$result = pg_execute($db, "INSERT INTO foo (foo_id, bar) VALUES ($insert_id, 123);");

सबसे सुरक्षित शर्त तीसरी विधि होगी, लेकिन यह बोझिल है। सबसे साफ पहला है, लेकिन आपको हाल ही में पोस्टग्रेएसक्यूएल चलाने की आवश्यकता होगी। हालांकि अधिकांश डीबी अमूर्त पुस्तकालय अभी तक पहली विधि का उपयोग नहीं करते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जेपीए के साथ पोस्टग्रेएसक्यूएल विरासत, हाइबरनेट

  2. EnterpriseDB PPAS 9.2 बीटा में 8 नई Oracle संगतता सुविधाएँ

  3. क्या मैं पहले से किए गए लेन-देन को रोलबैक कर सकता हूं? (डेटा हानि)

  4. अद्वितीय पहचानकर्ता के बिना डुप्लिकेट पंक्तियों को कैसे हटाएं

  5. PostgreSQL ऑडिट लॉगिंग सर्वोत्तम अभ्यास