2016-12-06 32 views
0

我有一個SQLite數據庫,我將用它來存儲一個網站的餐館信息。如何知道SQLite數據庫的最後一個ID

該網站將允許用戶在dabase中插入新的餐廳(通過php)。

我的問題是,鑑於數據庫中的表中的每一行都有其id屬性(這是主鍵),我怎麼知道我要存儲在數據庫中的下一個項目的id應該是多少?

如果添加到數據庫的最後一個項目的ID爲50,那麼用戶嘗試添加的下一個餐廳應該有ID 51,但我該如何訪問它?

這裏是我的SQLite餐廳表:

CREATE TABLE Restaurant (
    id NUMBER PRIMARY KEY NOT NULL, 
    name NVARCHAR2(20) NOT NULL, 
    description NVARCHAR2(20), 
    address NVARCHAR2(20) NOT NULL, 
    priceRange NUMBER NOT NULL REFERENCES PriceRange(id) ON DELETE SET NULL ON UPDATE CASCADE 
); 

提前感謝!

+0

這聽起來像你正試圖手動管理主鍵值。你有這樣做的理由嗎?爲什麼不讓數據庫幫你處理它們? – Chris

回答

1

由於您用標記了問題,因此您應該可以使用SQLite3::lastInsertRowID()

或者,純粹的SQLite解決方案是last_insert_rowid()函數。

+0

這會給你剛剛插入的行的id,而不是你將在** next **插入中獲得的id。 – Dekel

+1

是的。這個問題在這方面是有意義的,儘管......標題說了一件事,內容暗示了另一件事;最終目標甚至可能是第三件事。 – Narf

+0

不正確。在OP問題裏面,你可以看到「我怎麼知道我將要在數據庫中存儲的下一個項目的ID是什麼」 – Dekel

相關問題