create
table
`sequence`
(`name`
varchar(50
)collate utf8_bin not
null
comment
'序列的名字'
,`current_value`
int(11)
notnull
comment
'序列的當前值'
,`increment`
int(11)
notnull
default
'1'comment
'序列的自增值'
,primary
key(
`name`))
engine
=innodb
default
charset
=utf8 collate
=utf8_bin;
-- 建立–取當前值的函式
drop
function
ifexists currval;
delimiter $
create
function currval (seq_name varchar(50
))returns
integer
language
sqldeterministic
contains
sqlsql security definer
comment
''begin
declare
value
integer
;set
value=0
;select current_value into
value
from sequence
where name = seq_name;
return
value
;end
$delimiter
;-- 建立–取下乙個值的函式
drop
function
ifexists nextval;
delimiter $
create
function nextval (seq_name varchar(50
))returns
integer
language
sqldeterministic
contains
sqlsql security definer
comment
''begin
update sequence
set current_value = current_value + increment
where name = seq_name;
return currval(seq_name)
;end
$ delimiter
;-- 建立–更新當前值的函式
drop
function
ifexists setval;
delimiter $
create
function setval (seq_name varchar(50
),value
integer
)returns
integer
language
sqldeterministic
contains
sqlsql security definer
comment
''begin
update sequence
set current_value =
value
where name = seq_name;
return currval(seq_name)
;end
$ delimiter
;insert
into sequence values
('testseq',0
,1);
-- 新增乙個sequence名稱和初始值,以及自增幅度
select setval(
'testseq',10
);-- 設定指定sequence的初始值
select currval(
'testseq');
-- 查詢指定sequence的當前值
select nextval(
'testseq');
-- 查詢指定sequence的下乙個值
mysql自定義函式優點 MySQL自定義函式
在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...
mysql自定義函式命名 MySQL自定義函式
在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...
mysql 自定義函式
今天要做乙個排序,有中文和英文的,資料庫採用utf8編碼,排除來的不對,所以需要將中文轉換成中文的第乙個字母,然後來排序 先小小的看一下mysql的自定義函式 drop function if exists fntable 如果存在就刪除 delimiter 函式開始 create function...