【问题标题】:What is the correct term to describe a procedure that produces the same result irrespective of how many times it is run?描述无论运行多少次都会产生相同结果的过程的正确术语是什么?
【发布时间】:2020-01-31 14:19:39
【问题描述】:

假设您想在数据库中创建一个新表。如果您运行一个只包含CREATE... 代码的脚本,那么它会在第一次运行,但如果再次运行则会崩溃,因为它会尝试创建一个已经存在的对象。但是,通过首先添加IF EXISTS ... 逻辑(或DROP TABLE ...),您可以避免此类错误。

我知道有一个特定的技术术语来描述这个概念或属性,即脚本能够多次运行而不改变仅运行一次脚本的结果的最终结果,但我似乎不能回想一下,我一直找不到。 Multi-something-something? 还是 poly-something-something

【问题讨论】:

  • 你的意思是确定性吗?
  • 谢谢,但没有 - 我知道有一个具有上述特定含义的特殊术语。
  • @Kjartan 。 . .我认为 jarlh 是正确的。 “DETERMINISTIC”至少为 SQL 存储过程捕获了这个概念。对于具有唯一键的 ORDER BY 的查询,我使用术语“稳定”,但这是特定于排序的。

标签: sql language-agnostic terminology conceptual


【解决方案1】:

Idempotent 操作

可以多次应用而不改变结果超出 初次申请。

例如,函数 fidempotent 如果对于 所有 输入 x 它成立

f(x) == f(f(x))

我经常在idempotent HTTP requests 的上下文中遇到这个概念,在函数式编程的上下文中遇到referential transparency 的概念。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 2016-11-27
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多