|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有了rowbase的binlog后,我们来分析一下怎么实现闪回。平时的DML无非三种操作,增删改,先说三种操作的日志格式。我们常常在一个存储过程当中前往一个经由一系列庞大盘算后的了局集。由于这个了局集不是单靠查询语句就可以弄定,以是不必复杂的利用视图,只能靠存储历程了。但如许就会存在一个成绩,假如我在失掉这个了局集后想再对这个了局会合的数据举行过滤,就不太好办了。但假如我们能先将这个了局集拔出到一个一时表中,然后利用复杂的where前提对这个一时表举行过滤,就变的相称的复杂了。
上面我们就做一个将存储历程的了局集拔出到表中做一个示例
sqlserver中新增数据的办法能够参考以下:SqlServer中拔出和增加数据的办法总结
先创立一个复杂的存储历程,前往一个了局集
Createprocedureusp_test
as
begin
setnocounton
selectaasA,2asB,3asC
unionall
selectc,2,3
unionall
selectd,2,3
unionall
selecte,2,3
setnocountoff
end
这个存储历程前往了一个具有四行数据的了局集,我们可使用executeusp_test命令来检察了局集。
然后我们创立一个一时表,并将该了局集拔出到这个一时表中
createtable#temp_test
(
Avarchar(50),
Bint,
Cint
)
insertinto#temp_test(A,B,C)
executeusp_test
如许,一时表#temp_test就具有存储历程usp_test的了局集了,假如我们要对了局集过滤,就只需利用复杂的where前提了,好比,我们要查询了局会合A列即是a的了局,sql命令以下:
select*from#temp_testwhereA=a
限制,如果WHERE子句的查询条件里有不等号(WHEREcoloum!=),MySQL将无法使用索引。类似地,如果WHERE子句的查询条件里使用了函数(WHEREDAY(column)=),MySQL也将无法使用索引。 |
|