【发布时间】:2011-04-05 13:52:23
【问题描述】:
我正在将 access 2003 应用程序迁移到 access 2010。该应用程序使用 postgres odbc 驱动程序来访问其数据。
在访问 2010 时,它尝试使用 postgresql 服务器上的 IDENT_CURRENT 函数(如使用 wireshark 所见)来识别最近插入的行的 id ......不幸的是,据我所知 IDENT_CURRENT 不是 postgresql 支持的函数。 ..
我正在使用最新的 postgresql ODBC 驱动程序 (9.0) 和 postgresql 8.3 数据库。
【问题讨论】:
-
我能够通过教 postgres 如何为我们的表执行 IDENT_CURRENT 来解决我的特定问题(其中主键始终存储在名为
_id 的列中)但这并不是真正的我认为很好的解决方案。 CREATE FUNCTION IDENT_CURRENT(name) RETURNS BIGINT AS $$ SELECT CURRVAL( regexp_replace( $1, '.+public[."]+([^"]+)"?',E'\\1_\\1_id_seq' ) ); $$ 语言 SQL;
标签: ms-access postgresql odbc ms-access-2010