簡體   English   中英

使用select last_insert_id生成唯一ID

[英]Using select last_insert_id to generate unique ids

在閱讀完Stackoverflow上的可能選項后,我沒有看到我正在考慮的確切情況的答案...

案例:我有一個自動生成mysql連接模板的php系統。

為了使系統正常工作,我需要為每個生成的模板在創建時分配一個唯一的6位整數。 而不是弄亂隨機發生器,等等。

A)我可以簡單地在數據庫中創建一個名為'pageid'的表,並以int(11)/ unique / autoincrement為起始值100000,然后在模板創建過程中,僅對此表執行插入操作,然后執行一個'選擇last_insert_id()'來獲取最后一個值,然后將其在創建時注入到模板中? (換句話說,表的唯一功能是生成並吐出最后一個唯一ID)。

B)如果是這樣,使用此方法是否應該考慮任何問題? (除了這意味着只能生成899,999個模板的限制,在這種情況下這不是問題)。

任何想法或更好的方法表示贊賞...

  1. 我可以簡單地在數據庫中創建一個名為'pageid'的表,並以int(11)/ unique / autoincrement為起始值100000,然后在模板創建過程中,僅對此表執行插入操作,然后執行一次'select last_insert_id ()'拉出最后一個值,然后將其在創建時注入到模板中? (換句話說,表的唯一功能是生成並吐出最后一個唯一ID)。

    是:

     CREATE TABLE pages ( pageid MEDIUMINT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY ) AUTO_INCREMENT = 100000; 

    請注意,我使用的是MEDIUMINT(6)因為它比INT少1字節的存儲空間,並具有更適合您需要的顯示寬度。

  2. 如果是,使用此方法是否應該考慮任何問題? (除了這意味着只能生成899,999個模板的限制,在這種情況下這不是問題)。

    相反,您可以僅在templates表中具有該列,並在插入新記錄時自動分配id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM