当前位置:  开发笔记 > 数据库 > 正文

确定性函数的术语没有副作用?

如何解决《确定性函数的术语没有副作用?》经验,为你挑选了2个好方法。

我需要适用于特定类型功能的术语.

假设您在SQL数据库中编写了一个函数,其输入和输出包含在数据库事务的范围内.

也就是说,如果在数据库事务的范围内调用此函数,则该函数使用的所有数据都在同一范围内可用.它可以查询数据库表,但是它无法从文件系统读取文件,或ping网站等.如果在具有REPEATABLE READ隔离的单个事务中调用该函数两次,则应该得到相同的结果,即使其他客户端正在对数据库进行更改.

同样,除了在相同的事务范围内,该函数没有副作用.不允许在数据库事务范围之外的状态更改.该函数不应该发送电子邮件,也不应该写入文件系统,也不应该存储值memcached等.如果函数在数据库中更改数据,那没关系,因为如果调用事务被回滚,那么函数的效果也是如此.

函数的参数是可以的,因为它们基本上用作常量.

对于这种类型的函数,适当的术语是什么?"确定性"似乎并不具体.你会如何描述这类功能?


谢谢你的回答,但没有一个是我的想法.幂等因素最接近,所以我将其标记为已接受的答案.但无论如何,你们每个人都得到了我的支持.

纯函数没有副作用,它们的结果完全基于它们的参数.给出相同参数的结果总是相同的.这不起作用,因为我想到的数据库函数可以基于数据的状态,并且该函数也可以影响数据的状态.

幂等函数可以根据数据状态返回结果,并且给定相同的数据状态,结果总是相同的.但这并不适合我的想法; 无论调用函数多少次,幂等函数的效果都必须导致不变的结果.但是,事务隔离中所做的更改与该范围外部所做的更改之间没有区别.

RossFabrican.. 6

您也可以调用这些纯函数.



1> RossFabrican..:

您也可以调用这些纯函数.



2> S.Lott..:

你在询问幂等吗?

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有