diff --git a/includes/database/database.inc b/includes/database/database.inc
index 339c9b0..501b978 100644
--- a/includes/database/database.inc
+++ b/includes/database/database.inc
@@ -2417,6 +2417,16 @@ function db_query_temporary($query, array $args = array(), array $options = arra
  * @param $options
  *   An array of options to control how the query operates.
  *
+ *   Note that the default return option of Database::RETURN_INSERT_ID (see
+ *   InsertQuery::__construct()) can trigger errors in some databases if the
+ *   target table is empty and nothing is actually inserted. This can happen
+ *   when inserting using the db_insert()->from($select_query) syntax, if
+ *   the select query returns no rows.  On Postgres (9.1), this manifests
+ *   itself as the error 'SQLSTATE[55000]: Object not in prerequisite state:
+ *   7 ERROR: currval of sequence "(table)_(column)_seq" is not yet defined
+ *   in this session'. If you do not require the return value, setting
+ *   $options['return'] to Database::RETURN_NULL is recommended.
+ *
  * @return InsertQuery
  *   A new InsertQuery object for this connection.
  */
diff --git a/modules/comment/comment.install b/modules/comment/comment.install
index e4da58f..bfa83dc 100644
--- a/modules/comment/comment.install
+++ b/modules/comment/comment.install
@@ -43,7 +43,7 @@ function comment_enable() {
   $query->addExpression('NULL', 'last_comment_name');
   $query->isNull('ncs.comment_count');
 
-  db_insert('node_comment_statistics')
+  db_insert('node_comment_statistics', array('return' => Database::RETURN_NULL))
     ->from($query)
     ->execute();
 }
@@ -314,7 +314,7 @@ function comment_update_7006(&$sandbox) {
     $query->addField('c', 'comment', 'comment_body_value');
     $query->addField('c', 'format', 'comment_body_format');
 
-    db_insert('field_data_comment_body')
+    db_insert('field_data_comment_body', array('return' => Database::RETURN_NULL))
       ->from($query)
       ->execute();
 
diff --git a/modules/forum/forum.install b/modules/forum/forum.install
index 57e116b..4c80518 100644
--- a/modules/forum/forum.install
+++ b/modules/forum/forum.install
@@ -345,7 +345,7 @@ function forum_update_7001() {
     ->fields($forum_alias, array('tid'))
     ->fields($ncs_alias, array('last_comment_timestamp', 'comment_count'));
 
-  db_insert('forum_index')
+  db_insert('forum_index', array('return' => Database::RETURN_NULL))
     ->fields(array('nid', 'title', 'sticky', 'created', 'tid', 'last_comment_timestamp', 'comment_count'))
     ->from($select)
     ->execute();
diff --git a/modules/system/system.install b/modules/system/system.install
index 8538b60..b5a6df0 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -2780,7 +2780,7 @@ function system_update_7061(&$sandbox) {
     $query = db_select('upload', 'u');
     $query->distinct();
     $query->addField('u','vid');
-    db_insert('system_update_7061')
+	db_insert('system_update_7061', array('return' => Database::RETURN_NULL))
       ->from($query)
       ->execute();
 
diff --git a/modules/taxonomy/taxonomy.install b/modules/taxonomy/taxonomy.install
index 39c71ba..ad7b59f 100644
--- a/modules/taxonomy/taxonomy.install
+++ b/modules/taxonomy/taxonomy.install
@@ -685,7 +685,11 @@ function taxonomy_update_7005(&$sandbox) {
     $fields =& $query->getFields();
     unset($fields['td.weight']);
     unset($fields['tn.tid']);
-    db_insert('taxonomy_update_7005')
+
+    // 'return' => Database::RETURN_NULL is required for this insert, as
+    // the table is new/empty, and $query may return no rows.
+    // @see db_insert()
+    db_insert('taxonomy_update_7005', array('return' => Database::RETURN_NULL))
       ->from($query)
       ->execute();
   }
diff --git a/modules/tracker/tracker.module b/modules/tracker/tracker.module
index 8694222..64fe7db 100644
--- a/modules/tracker/tracker.module
+++ b/modules/tracker/tracker.module
@@ -129,7 +129,7 @@ function tracker_cron() {
 
       // Insert the user-level data for the commenters (except if a commenter
       // is the node's author).
-      db_insert('tracker_user')
+      db_insert('tracker_user', array('return' => Database::RETURN_NULL))
         ->from($query)
         ->execute();
 
