溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql 存儲過程的創(chuàng)建

發(fā)布時間:2020-07-15 08:47:50 來源:網(wǎng)絡(luò) 閱讀:405 作者:hagretd 欄目:MySQL數(shù)據(jù)庫
  1. 注:
    (1)這里需要注意的是DELIMITER //和DELIMITER ;兩句,DELIMITER是分割符的意思,因為MySQL默認(rèn)以";"為分隔符,如果我們沒有聲明分割符,那么編譯器會把存儲過程當(dāng)成SQL語句進(jìn)行處理,則存儲過程的編譯過程會報錯,所以要事先用DELIMITER關(guān)鍵字申明當(dāng)前段分隔符,
    這樣MySQL才會將";"當(dāng)做存儲過程中的代碼,不會執(zhí)行這些代碼,用完了之后要把分隔符還原。
    (2)存儲過程根據(jù)需要可能會有輸入、輸出、輸入輸出參數(shù),這里有一個輸出參數(shù)s,類型是int型,如果有多個參數(shù)用","分割開。
    (3)過程體的開始與結(jié)束使用BEGIN與END進(jìn)行標(biāo)識。
    這樣,我們的一個MySQL存儲過程就完成了,是不是很容易呢?看不懂也沒關(guān)系,接下來,我們詳細(xì)的講解。
    (2). 聲明分割符
    其實,關(guān)于聲明分割符,上面的注解已經(jīng)寫得很清楚,不需要多說,只是稍微要注意一點(diǎn)的是:如果是用MySQL的Administrator管理工具時,可以直接創(chuàng)建,不再需要聲明。
    (3). 參數(shù)
    MySQL存儲過程的參數(shù)用在存儲過程的定義,共有三種參數(shù)類型,IN,OUT,INOUT,形式如:
    CREATE PROCEDURE([[IN |OUT |INOUT ] 參數(shù)名 數(shù)據(jù)類形...])
    IN 輸入?yún)?shù):表示該參數(shù)的值必須在調(diào)用存儲過程時指定,在存儲過程中修改該參數(shù)的值不能被返回,為默認(rèn)值
    OUT 輸出參數(shù):該值可在存儲過程內(nèi)部被改變,并可返回
    INOUT 輸入輸出參數(shù):調(diào)用時指定,并且可被改變和返回

  2. 循環(huán)插入數(shù)據(jù)

delimiter $$
drop procedure if exists test;
create procedure test (num int)
begin
declare  i int default 1;
while i<=num do
insert into test values (i,concat('test',i));
set i=i+1;
end while;
end $$
#concat 信息連接符

  1. 測試插入數(shù)據(jù)

    delimiter $$
    create procedure zy (v1 int,v2 varchar(20),v3 varchar(20))
    begin
    insert into zy values (v1,v2,v3);
    end $$

  2. 查看數(shù)據(jù)庫的存儲過程

    show procedure status where  db=''/name='';

  3. 調(diào)用存儲

    call test(xx);

  4. 查詢創(chuàng)建存儲的腳本

    show create procedure name;

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI