自定義id自增的一種方式-輔助表

對於id自增的實現,數據庫提供其自增策略,首先我們需要明白爲什麼需要自增id,我覺得有以下幾個原因:

1、id的管理變得簡單,由數據庫進行維護

2、id具有唯一性,滿足主鍵的定義,通常作爲主鍵使用



明白了自增id的好處,那麼我們如何自定義id自增呢?

下面實現的方法中使用到了輔助表: id_help

表結構如下

table_name max_id
varchar(40) int


其中table_name存儲哪個表的id需要自增,max_id存儲當前最大的一個id值

爲了獲取自增id,我們需要寫一個存儲過程來獲取:

DECLARE col_id INT;
SELECT max_id INTO col_id FROM id_help WHERE table_name='tableName';
UPDATE id_help SET max_id = col_id + 1;
SELECT col_id + 1;

我們只需要將我們需要自增的表數據初始化寫入id_help表中,之後就可以通過存儲過程獲取所需要的值


注:這種方式可以實現多個表共用一個id,且這些id滿足自增要求,即都獲取同一個table_name的max_id,但這種方式有一個問題,後期的數據只能通過該方式進行id數據的插入,否則會導致max_id與表中最大的id不符,導致數據錯亂,所以爲了避免這種情況,數據的插入最好統一使用一種方式





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章