2011-08-11 84 views
1

我必須與Ingres數據庫進行一些PHP交互。我需要獲取我插入到數據庫中的最後一個條目的ID。Php:相當於mysql_insert_id()的ingres

我該如何繼續?我不是ingres專家,但我想也有自動遞增的ID /序列/ ...?

非常感謝您

回答

2

last_identity()功能會給你最後生成的序列號爲一個表,如:

SELECT last_identity() FROM t1 

從我的理解需要創建的序列號,利用CREATE TABLE使用以下語法:

colname integer generated always as identity 

例如:

CREATE TABLE t1 ( 
    idx integer generated always as identity, 
    sometext varchar(100) not null 
) 

請參閱http://community.ingres.com/wiki/Using_Ingres_Identity_Columns瞭解有關使用標識列的其他注意事項。

+0

但是,它會做第二次請求否? 如果我們有一個代碼插入並詢問最後一個ID,但是併發我們可以得到: UserA插入對象1 UserB插入對象2 UserA詢問最後一個ID並接收ID ???(1或2在這裏?) UserB請求最後一個ID並收到ID 2 這很危險,不是嗎? – J4N

+0

這是我的理解,價值來自會議不是從一個表。請參閱http://community.ingres.com/wiki/New_Ingres_10_Functions#LAST_IDENTITY_function。 – grantc

+0

好的,謝謝!但是在創建表格時遇到了一些麻煩。這工作的哪個版本的ingres?因爲我已經開始了9.2 – J4N