我熟悉MySQL的LAST_INSERT_ID函数,是否有类似的功能可以通过ODBC连接MS Access数据库执行相同的查询?
在我的具体情况下,我正在使用PHP+PDO将行插入Access数据库,并希望在执行每个插入操作时知道最后一个主键值。
如果没有此功能,是否有任何替代方案?(不更改数据库)
谢谢。
看起来Access 2000或更高版本支持@@IDENTITY
属性。因此,在INSERT之后,您只需要选择其值:
select @@IDENTITY from myTable
检索标识或自动编号值
简而言之:
微软Access 2000或更高版本支持@@IDENTITY属性,以检索插入后自动编号字段的值。使用RowUpdated事件,您可以确定是否发生了插入,检索最新的@@IDENTITY值,并将其放置在DataSet中本地表的标识列中。SELECT @@IDENTITY
适用于Jet 4和ACE。我从未尝试过在PHP中使用Access,但是有两个想法,第一个想法很简单。那就是在插入之后从表格中选择max(id),因为它是自动递增的,你将得到最高值,也应该是插入的值。其次,您可以尝试使用odbc_cursor(http://au2.php.net/manual/en/function.odbc-cursor.php)。
SELECT @@IDENTITY
。 - David-W-Fenton