儲存過程例項 遍歷鍊錶結構

2021-08-21 17:29:38 字數 1462 閱讀 6834

業務場景:我以類似於鍊錶的結構儲存一些資料,現在需要遍歷這一鍊錶。每條資料用乙個欄位存它的下一條資料的id。

解決方法:一條一條取出加入資料到臨時表之中之後再全部拿出。

例項資料表結構如下:

儲存過程如下:

create definer=`root`@`localhost` procedure `newproc`(in userid int)

begin

#routine

body

goes

here...

declare

prep

intdefault 0 ;

-- 建立臨時表若存在則不再次建立

create temporary table if

not exists temp

(`id` int(11) not null,

`uername` varchar(255) character set utf8 collate utf8_general_ci null default null,

`password` varchar(255) character set utf8 collate utf8_general_ci null default null,

`tel` varchar(255) character set utf8 collate utf8_general_ci null default null,

`emil` varchar(255) character set utf8 collate utf8_general_ci null default null,

`preid` int(11) null default null

); -- 刪除表資料

truncate table temp;

insert into temp select * from userinfo where id = userid;

select preid into prep from userinfo where id = userid;

while prep >=0

do insert into temp select * from userinfo where id = prep;

select preid into prep from userinfo where id = prep;

endwhile;

select * from temp order

by id;

-- end

儲存過程例項

首先查詢,如果有則更新,如果沒有則新增。create proc sp drugstockrecord drugid int,department varchar 500 batchnum varchar 500 amount float,stocktime datetime,producedate ...

儲存過程例項

例1 create proc proc stu sname varchar 20 pwd varchar 20 as select from ren where sname sname and pwd pwd go檢視結果 proc stu admin admin 例2 下面的儲存過程實現使用者驗證...

儲存過程例項

資料庫環境 sqlserver 概述 查詢某個月份的每天的所有資料,然後存到臨時表裡面,再把臨時表裡面的結果集返回。判斷要建立的儲存過程名是否存在 if exists select from dbo.sysobjects where id object id n dbo sp dormlevelmo...