在數據庫分表或者程序本身須要惟一id的狀況下,咱們須要一個生成惟一id的方案。
能夠編寫一個綜合時間和某些特徵生成惟一id的程序,也能夠考慮使用數據庫裏自增id的特性來實現這個需求,下面舉個mysql的例子。
首先建立一個專門生成id的表,其中id字段是主鍵,replace_key字段爲惟一鍵。mysql
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便可。sql
REPLACE INTO `ticket` (`replace_key`) VALUES ('a'); SELECT LAST_INSERT_ID();