Update FAQ.
authorBruce Momjian
Sat, 13 Oct 2001 03:53:45 +0000 (03:53 +0000)
committerBruce Momjian
Sat, 13 Oct 2001 03:53:45 +0000 (03:53 +0000)
doc/FAQ
doc/src/FAQ/FAQ.html

diff --git a/doc/FAQ b/doc/FAQ
index 6273e48b01c53b38480a4b1a397bb9b2be6e6d9c..027d5aae86ec624c450b6e0f69b279831e18897f 100644 (file)
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,7 +1,7 @@
 
                 Frequently Asked Questions (FAQ) for PostgreSQL
                                        
-   Last updated: Fri Oct 12 23:37:30 EDT 2001
+   Last updated: Fri Oct 12 23:53:35 EDT 2001
    
    Current maintainer: Bruce Momjian ([email protected])
    
@@ -825,9 +825,11 @@ BYTEA           bytea           variable-length byte array (null-safe)
    One approach is to to retrieve the next SERIAL value from the sequence
    object with the nextval() function before inserting and then insert it
    explicitly. Using the example table in 4.16.1, that might look like
-   this:
-    $newSerialID = nextval('person_id_seq');
+   this in Perl:
+    $sql = "SELECT nextval('person_id_seq')";
+    $newSerialID = ($conn->selectrow_array($sql))[0];
     INSERT INTO person (id, name) VALUES ($newSerialID, 'Blaise Pascal');
+    $res = $dbh->do($sql);
 
    You would then also have the new value stored in $newSerialID for use
    in other queries (e.g., as a foreign key to the person table). Note
@@ -838,7 +840,9 @@ BYTEA           bytea           variable-length byte array (null-safe)
    Alternatively, you could retrieve the assigned SERIAL value with the
    currval() function after it was inserted by default, e.g.,
     INSERT INTO person (name) VALUES ('Blaise Pascal');
-    $newID = currval('person_id_seq');
+    $res = $conn->do($sql);
+    $sql = "SELECT currval('person_id_seq')";
+    $newSerialID = ($conn->selectrow_array($sql))[0];
 
    Finally, you could use the OID returned from the INSERT statement to
    look up the default value, though this is probably the least portable
@@ -849,7 +853,8 @@ BYTEA           bytea           variable-length byte array (null-safe)
     4.16.3) Don't currval() and nextval() lead to a race condition with other
     users?
     
-   No. This is handled by the backends.
+   No. Currval() returns the current value assigned by your backend, not
+   by all users.
    
     4.17) What is an OID? What is a TID?
     
index 4329e2b5e104f950da83086eff63643a2cb3e39b..90e2588b6e9e1b4b3b0d29bdecb6f8ca3aa917b1 100644 (file)
@@ -12,7 +12,7 @@
   alink="#0000FF">
     

Frequently Asked Questions (FAQ) for PostgreSQL

 
-    

Last updated: Fri Oct 12 23:37:30 EDT 2001

+    

Last updated: Fri Oct 12 23:53:35 EDT 2001

 
     

Current maintainer: Bruce Momjian (

@@ -1046,10 +1046,12 @@ BYTEA           bytea           variable-length byte array (null-safe)
     value from the sequence object with the nextval() function
     before inserting and then insert it explicitly. Using the
     example table in 4.16.1, that might look like
-    this:

+    this in Perl:

 
-    $newSerialID = nextval('person_id_seq');
+    $sql = "SELECT nextval('person_id_seq')";
+    $newSerialID = ($conn->selectrow_array($sql))[0];
     INSERT INTO person (id, name) VALUES ($newSerialID, 'Blaise Pascal');
+    $res = $dbh->do($sql);
 
     You would then also have the new value stored in
     $newSerialID for use in other queries (e.g., as a
@@ -1064,7 +1066,9 @@ BYTEA           bytea           variable-length byte array (null-safe)
     after it was inserted by default, e.g.,

 
     INSERT INTO person (name) VALUES ('Blaise Pascal');
-    $newID = currval('person_id_seq');
+    $res = $conn->do($sql);
+    $sql = "SELECT currval('person_id_seq')";
+    $newSerialID = ($conn->selectrow_array($sql))[0];
 
     Finally, you could use the OID
     returned from the INSERT statement to look up the
@@ -1076,7 +1080,8 @@ BYTEA           bytea           variable-length byte array (null-safe)
     

4.16.3) Don't currval() and

     nextval() lead to a race condition with other users?
 
-    

No. This is handled by the backends.

+    

No. Currval() returns the current value assigned by your

+    backend, not by all users.

 
     

4.17) What is an OID? What is

     a TID?