declare @i int
declare @flag int
declare @ra varchar(18) ---最後會生成的隨機碼
set @i=1
set @ra=''
while @i<19
begin
--設定隨機,這個隨機會選擇字母(大小寫)還是數字
set @flag=ceiling(rand()*3)
if @flag=1
begin
--隨機字母(大寫)
select @ra=@ra+char(65+ceiling(rand()*25))
endelse if @flag=2
begin
--隨機字母(小寫)
select @ra=@ra+char(97+ceiling(rand()*25))
endelse
begin
--隨機數字 1至9的隨機數字(整數)
select @ra=@ra+cast(ceiling(rand()*9) as varchar(1))
endset @i=@i+1
end
資料庫 ID 生成方案 Redis
使用 redis 來生成分布式 id,其實和利用 mysql 自增 id 類似,可以利用 redis 中的 incr 命令來實現原子性的自增與返回,比如 127.0.0.1 6379 set id 1 初始化自增 id 為1 ok127.0.0.1 6379 incr id 增加1,並返回 inte...
資料庫 ID 生成方案 資料庫多主模式
將兩個資料庫組成主從模式的集群,正常情況下,是可以解決資料庫的可靠性問題,但如果主庫掛掉後,資料沒有及時同步到從庫,這個時候就會出現 id 重複的問題。可以使用雙主模式集群,也就是兩個例項都能單獨的生產自增id,這樣能夠提高效率,不過就需要單獨給每個資料庫例項配置不同的起始值和自增步長。第一台 my...
ibatis不同資料庫主鍵ID生成方式
在使用ibatis插入資料進資料庫的時候,會用到一些sequence的資料,有些情況下,在插入完成之後還需要將sequence的值返回,然後才能進行下一步的操作。使用ibatis的selectkey就可以得到sequence的值,同時也會將值返回。不過對於不同的資料庫有不同的操作方式。對於oracl...