今天再次添補一下小小內容,閑話不多說,直入標題。
先來看下,如何創建帶參數的 存儲過程(ps:本文只限mysql5及以上版本)
CREATE PROCEDURE prSaveFileInfo
(
TableName1 VARCHAR(64),
FileName1 VARCHAR(50),
FileType1 bigint,
Category1 bigint,
ProtocalVersion1 bigint,
FileCreationTime1 VARCHAR(50),
DeviceID1 bigint,
FileSN1 bigint,
StateFlag1 bigint
)
BEGIN
DECLARE strSQL VARCHAR(2048);
SET strSQL = concat(' insert into ',TableName1,'(FileName, FileType, Category, ProtocalVersion,
FileCreationTime, DeviceID, FileSN, StateFlag)
values("',FileName1,'"',',',FileType1,',',Category1,',',ProtocalVersion1,',','"',FileCreationTime1,'"',',',DeviceID1,',',FileSN1,',',StateFlag1,')');
set @v_sql=strSQL;
prepare stmt from @v_sql;
execute stmt;
END;
注意:這里的sql拼接,請用concat() 函數來連接,否則后續傳參進來,會報 1292-Truncate Double value 錯誤。
我們再來看看調用這個procedure吧,很簡單,就一句話:
call prSaveFileInfo('TestDemoTable1', 'test1', 1, 2, 1, '2010-12-07 13:11:23', 1, 2, 1);
OK,大功告成。