|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏:存储历程|数据|字符串头几天我碰到一个成绩,在处置程叙文件下发过程当中反复在数据库中天生一组数据,但操纵过程当中极可能会产生SqlConnect毗连超时成绩,因而用存储历程办理这个成绩:
createprocedureInsertDocx(@p_struseridvarchar(4000),@sDocidvarchar(50))
AS
--本存储历程处置用户发送文件下发功效
--界说输出参数:
--@p_struserid:输出userid以","分开的字符串,
--如:00001,00002,00029,00030,00062
--@sDocid:输出主文档Doc的id值
--完成拆分userid以","分开的字符串后,insert到docx表中
declare@v_struseridvarchar(4000)
declare@useridvarchar(50)
declare@v_docidvarchar(50)
declare@returnint--数据处置了局前往值:0乐成,1失利
declare@mint--定位分开符的地位
declare@nint--地位偏移
SET@v_struserid=@p_struserid
SET@return=0
SET@n=1
SET@m=CHARINDEX(,,@v_struserid)
WHILE@m>0
BEGIN
set@userid=substring(@v_struserid,@n,@m-@n)
--print@userid
begin
insertintoIMDOCX(DOCXID,DOCXUSERID,DOCXDOCID,DOCXINSERTTIME,DOCXREADSTATE)
values(3,@userid,@v_docid,getdate(),未阅)
if@@rowcount=0
set@return=1
end
set@n=@m+1
set@m=CHARINDEX(,,@v_struserid,@n)
END
return@return
GO
目前的方案是用mysqlbinlog工具,增加一个Flashback参数,输出结果为一个新的binlog文件――姑且叫做flashbacklog,这个flashbacklog顺序执行,可制定某张表和执行到哪个pos,来实现数据库的闪回。 |
|