根据问题:
PHP Postgres:获取最后插入 ID https://stackoverflow.com/questions/6485778/php-postgres-get-last-insert-id/6488840
他们指出,检索最后一个插入 ID 的最佳方法是:
INSERT INTO ....
RETURNING id;
我想为 Postgresql 创建一个包装类,以便当我运行时,例如:
$id = $db_wrapper->insert("INSERT...");
它总是返回插入变量的最后一个 id$id
。我不知道将传递给的查询的 auto_inc 列名称insert()
功能,我不想添加"RETURNING id"
到我所有插入查询的末尾 - 关于如何实现这一点有什么想法吗?
INSERT https://www.postgresql.org/docs/9.2/static/sql-insert.html with RETURNING
INSERT INTO employee (lastname,firstname) VALUES ('Jain', 'Manish') RETURNING id;
我更喜欢这个,因为服务器上一次有数千个流量可能会在最后一个曲线上出现错误或最后值(); https://www.postgresql.org/docs/9.2/static/functions-sequence.html虽然它说这两个功能是并发的并且与单独的会话一起使用,但我认为
返回id
更好更安全。
优点:这是获取最后插入的 id 的非常基本且现实的方法,
直到一次直接输入1050个Entry才发现问题。 ;) 位负载测试。
缺点:几乎没有,您可能需要修改调用 INSERT 语句的方式(在最坏的情况下,也许您的 API 或 DB 层不期望 INSERT 返回值);它不是标准 SQL(谁在乎);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)