|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但我们知道,若使用statement,并没有上述需要的数据。试想binlog中记录了一句updatetsetf1=3whereid=3。怎么恢复呢?server|函数
createviewv_getdate
as
selectgetdate()[output]
go
---------------------------------------------------------------
createfunctionf_getdate()
returnsdatetime
as
begin
declare@ndatetime
select@n=outputfromv_getdate
return(@n)
end
go
---------------------------------------------------------------
挪用:selectdbo.f_getdate()
======================================================================
-----以下是剖析--------
应为function外部不同意利用
函数能够是断定的或不断定的。假如任什么时候候用一组特定的输出值挪用函数时前往的了局老是不异的,则这些函数为断定的。假如每次挪用函数时即便用的是不异的一组特定输出值,前往的了局老是分歧的,则这些函数为不断定的。
不断定的函数会发生反作用。反作用是变动数据库的某些全局形态,好比更新数据库表或某些内部资本,如文件或收集等(比方,修正文件或发送电子邮件动静)。
不同意在用户界说函数主体中内置不断定函数;这些不断定函数以下:
@@CONNECTIONS@@TOTAL_ERRORS
@@CPU_BUSY@@TOTAL_READ
@@IDLE@@TOTAL_WRITE
@@IO_BUSYGETDATE
@@MAX_CONNECTIONSGETUTCDATE
@@PACK_RECEIVEDNEWID
@@PACK_SENTRAND
@@PACKET_ERRORSTEXTPTR
@@TIMETICKS
只管在用户界说函数主体中不同意有不断定函数,这些用户界说函数在挪用扩大存储历程时仍会发生反作用。
因为扩大存储历程会对数据库发生反作用,因而挪用扩大存储历程的函数是不断定的。当用户界说函数挪用会对数据库发生反作用的扩大存储历程时,不要期望了局集坚持分歧或实行函数。
如果WHERE子句的查询条件里使用比较操作符LIKE和REGEXP,MySQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKEabc%‘,MySQL将使用索引;如果查询条件是LIKE%abc’,MySQL将不使用索引。 |
|