PostgreSQL を使用する場合、シーケンスの名前を lastInsertId() に渡す必要があります。これにより、ID を持つデータベースからクエリが返されなかったと考えられ、代わりに lastInsertId($seqname) が余分なクエリを実行しており、競合状態になりやすい可能性があります (別の行が同時に挿入された場合、私は間違った結果になります)。
ドキュメントを読んで、同じ考えを示すこのコメントを見つけました: http://www.php.net/manual/en/pdo.lastinsertid.php#83440。5年前のもので、最近のものは見つかりませんでした。
どう思いますか?