postgre中如何获取最后的插入记录id insert_id
在Postgres中没有与MySQL中mysql_insert_id()相应的函数,这个函数反映最后的INSERT查询的索引值。PHP文档往往会让读者误以为pg_getlastoid()会完成这项工作,但是实际情况并不是这样。缺少这一样一个函数并不一个无法逾越的障碍,你可以利用Postgres的SEQUENCE系统来实现这样的功能。
幸运的是,要获得最后的ID是相当容易的。你可以通过SQL获得Sequence信息,因此你可以用这个语句来实现mysql_insert_id()的功能:
Chinaz.com
```
function postg_insert_id($tablename, $fieldname)
{
global connection_id;
$result=pg_exec($connection_id, "SELECT last_value FROM ${tablename}_
${fieldname}_seq");
$seq_array=pg_fetch_row($result, 0);
return $seq_array[0];
}
```
php.net
说明
int ****pg_last_oid**** ( resource $result )
**pg_last_oid()** 在上一条通过 pg_query() 发送的命令是 SQL INSERT 的情况下用来取得分配给所插入记录的 oid。如果存在有效的 oid 则返回一个正整数,如果出错或者上一条通过 pg_query() 发送的命令不是 INSERT 或者该 INSERT 失败则返回 **FALSE**。
从 PostgreSQL 7.2 版开始 OID 字段成为可选项。如果一个表中没有定义 OID 字段,程序员必须用 pg_result_status() 函数来检查记录是否被成功插入。
**Note**: 本函数以前的名字为 _pg_getlastoid()_。
参见 pg_query() 和 pg_result_status()。
postgre insert_id
更新于 2023年03月28日 20:53:54