gpt4 book ai didi

php - lastinsertid 和 zend 框架的 postgresql 序列问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:13:43 25 4
gpt4 key购买 nike

我刚刚开始从事一个项目,我正在使用 zend 框架和 postgresql(通常使用 MySQL),但是当我在使用 Zend_Db 插入命令时尝试获取最后插入的 ID 时遇到了问题。

当使用函数 $db->lastinsertid('users', 'userid'); 时,我收到以下错误消息:

SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "users_userid_seq" does not exist LINE 1: SELECT CURRVAL('users_userid_seq') ^

我检查了数据库,序列确实存在,表和序列都属于用于访问应用程序的同一用户。

我什至尝试过 $db->lastSequenceId('users_userid_seq'); 但仍然收到相同的错误消息。

我不确定问题出在 postgresql(我认为最有可能)还是框架。

有没有人遇到过类似的问题?

最佳答案

我看到您找到了答案,这只是一个打印错误。

FWIW,我将提供以下建议作为您看到的错误的另一个原因:

您需要按照存储的顺序准确拼写序列名称,如果序列名称存储为小写以外的任何其他名称,则包括匹配大小写。

换句话说,如果序列是用拼写“Users_userid_seq”创建的,但您将其查询为“users_userid_seq”,则这不匹配,您会得到错误。

尝试在 psql 工具中列出序列:

postgres=# \ds

这将向您显示定义的序列,以及它们存储在数据库中时的拼写。

关于php - lastinsertid 和 zend 框架的 postgresql 序列问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/691737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com