1,分割乙個用"|||"間隔的字串的儲存過程.
create procedure sp_insertjoke(lastindex int)2,網上乙個儲存過程分頁的例子.**自http://www.yiluo.net/?p=35),其中把字串當語句執行是preparebegin
declare i int;
set i=1;
while (i0) do
begin
set part1=mid(a,1,p-1);
insert myjoke(content) values(part1);
set a=substring(a,p+3);
set p=position('|||' in a);
end;
end while;
insert myjoke(content) values(a);
set i=i+1;
end;
end while;
end;
create procedure classlist(3,建立函式時必須有返回型別.in id int,
fldname varchar(100),
pagesize int,
pageindex int,
ordertype int,
strwhere varchar(2000),
out cou int
)begin
declare beginrow int;
declare sqlstr varchar(1000);
declare limittemp varchar(1000);
declare ordertemp varchar(1000);
declare v_classp int;
declare oo int;
declare done int default 0;
declare sql1 varchar(500) default 」 「;
declare sql2 varchar(200);
declare cur cursor for select shop_classid from shop_class where shop_parentclassid=id;
declare continue handler for sqlstate 『02000′ set done = 1;
set sql2=』select*from shop_class left join shop_main on shop_classid=shop_type_id where』;
select shop_parentclassid into v_classp from shop_class where shop_classid=id;
if(v_classp=0) then
open cur;
repeat
fetch cur into oo;
if not done then
set sql1=concat(』 or shop_classid=』,oo,sql1);
end if;
until done end repeat;
close cur;
set @sql=concat(sql2,substring(sql1,4,length(sql1)-3));
else
set @sql=concat(』select * from shop_main where shop_type_id=』,id);
end if;
set beginrow = (pageindex-1)*pagesize;
set limittemp = concat(』 limit 『,beginrow,』,',pagesize);
set ordertemp = concat(』 order by 『,fldname);
if ordertype = 0 then
set ordertemp = concat(ordertemp,』 asc 『);
else
set ordertemp = concat(ordertemp,』 desc 『);
end if;
set @sqlstring = concat(@sql,』 『,strwhere,ordertemp,limittemp);
prepare sqlstmt from @sqlstring;
execute sqlstmt;
deallocate prepare sqlstmt;
end
4,觸發器.
語法:create trigger trigger_name trigger_time trigger_event on tbl_name
for each row
begin
trigger_stmt
end;
create trigger trigger_name trigger_time trigger_event on tbl_name
for each row
begin
trigger_stmt
end;
大寫的為關鍵字
trigger_name:觸發器的名字,我常用的命名規則t_name_tablename_(b|a)(i|u|d),t:觸發器標識,name:英文名,tablename:表名,b(before):標識是觸發事件之前,a(after):標識觸發事件之後,i(insert):標識insert事件,u(update):標識update事件,d(delete):標識delete事件;
trigger_time:觸發時間(before或after)
trigger_event:事件名(insert或update或delete)
tbl_name:表名(必須是永久性表)
trigger_stmt:執行語句(可以是復合語名),使用別名old和new,能夠引用與觸發程式相關的表中的列。
例:create trigger tr_socre after insert on tal_name
for each row
begin
sql語句
end
MYSQL函式 儲存過程 觸發器
自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區別 可以使用 create function 語句建立自定義函式。語法格式如下 create funct...
mysql儲存過程 儲存函式 觸發器 事件
前言 資料庫本身支援儲存過程,不同的資料庫管理系統對儲存過程的支援都不盡相同 從mysql5.0開始,mysql支援儲存過程 儲存函式 觸發器 事件 使用儲存過程的優點 儲存過程執行一次後,其執行的規劃就駐留在高速緩衝儲存器上,以後再次呼叫儲存過程時,只需從高速緩衝儲存器中呼叫以編譯好的二進位制 執...
MySQL 事件 觸發器 儲存過程
事件 檢視事件狀態 show variables like event scheduler 開啟事件 set global event scheduler on 觸發器語法 建立觸發器 delimiter 定義開始和結束的標誌 create trigger triggername after bef...