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 建...