MySQL 儲存過程的建立

2021-10-09 11:30:48 字數 873 閱讀 9215

1.mysql儲存過程無法使用alter procedure來修改儲存過程,必須刪除後重新建立,所以在需要更新儲存過程時要在前一行使用drop procedue 刪除。

2.儲存過程內使用分號;會引起sql語句提前結束執行,引起建立過程失敗,需要用delimiter // 命令將預設的分號;改為//來代替本段命令的結束提交。

/* 

獲取io裝置資料

*/delimiter //

drop procedure p_get_lastone_hostdevice;

create procedure p_get_lastone_hostdevice(vdevice_fid varchar(30))

begin

declare tsql varchar(200);

select t.device_fid,t.host_io into @device_fid,@host_io from t_iodevice t where t.fid=vdevice_fid ;

set tsql=concat('select ',@host_io,' as dstate,',@host_io,'_name as dstate_name,add_time,device_name,device_fid from v_data_hostdevice t where t.device_fid=',@device_fid,' order by fid desc limit 1');

set @vsql=tsql;

-- select '@vsql';

prepare s from @vsql;

execute s;

deallocate prepare s;

end//

MySQL建立儲存過程

在開發過程中,經常會遇到重複使用某乙個功能的情況,為此,mysql引入了儲存過程 儲存過程 就是一條或多條sql語句的集合,當對資料庫進行一系列複雜操作時,儲存過程可以將這些複雜操縱,封裝成乙個 塊,以便重複使用,大大減少資料庫開發人員的工作量 使用create procedure語句 create...

MYSQL 建立儲存過程

無引數儲存過程 delimiter create procedure myfist proc 建立儲存過程 begin select stu id from score where grade 80 and c name 計算機 select name from student where id i...

mysql建立儲存過程

坑一 mysql建立儲存過程中,儲存過程的輸入引數變數命名不應該與欄位名相同。如果相同,導致的結果就是引數的值將不會是你傳入的值,而是變成每條記錄的那個欄位的值。如果在刪除操作時,將會刪除整張表的記錄,是非常危險的。刪除儲存過程 drop procedure if exists pro test 建...