在數(shù)據(jù)庫分表或者程序自己需要唯一id的情況下,我們需要一個生成唯一id的方案。
可以編寫一個綜合時間和某些特征生成唯一id的程序,也可以考慮使用數(shù)據(jù)庫里自增id的特性來實現(xiàn)這個需求,下面舉個mysql的例子。
首先創(chuàng)建一個專門生成id的表,其中id字段是主鍵,replace_key字段為唯一鍵。
CREATE?TABLE?`ticket`?( ????`id`?bigint(20)?unsigned?NOT?NULL?auto_increment, ????`replace_key`?char(1)?NOT?NULL?default?'', ????PRIMARY?KEY?(`id`), ????UNIQUE?KEY?`replace_key`?(`replace_key`) )?ENGINE=MyISAM?DEFAULT?CHARSET=utf8?AUTO_INCREMENT=10001;
每次需要生成id時,利用replace into語句生成新的記錄將舊的記錄替換掉,然后返回此id即可。
REPLACE?INTO?`ticket`?(`replace_key`)?VALUES?('a'); SELECT?LAST_INSERT_ID();
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END