Какой правильный термин описывает процедуру, которая дает один и тот же результат независимо от того, сколько раз она выполняется?

Допустим, вы хотите создать новую таблицу в базе данных. Если вы запустите сценарий, который содержит только код CREATE..., то он будет работать в первый раз, но при повторном запуске произойдет сбой, поскольку он будет пытаться создать уже существующий объект. Однако, добавив сначала логику IF EXISTS ... (или DROP TABLE ...), вы сможете избежать таких ошибок.

Я знаю, что есть специальный технический термин, описывающий это понятие или свойство, т. е. способность скрипта запускаться несколько раз без изменения конечного результата от результата однократного запуска скрипта, но я не могу его вспомнить, и я не смог найти его. Мульти-что-то-что-то? или поли-что-то-что-то?


person Kjartan    schedule 02.10.2019    source источник
comment
Вы имеете в виду ДЕТЕРМИНИСТИЧЕСКИЙ?   -  person jarlh    schedule 02.10.2019
comment
Спасибо, но нет - там я точно знаю, что есть какой-то специальный термин, имеющий конкретное значение, описанное выше.   -  person Kjartan    schedule 02.10.2019
comment
@Кьяртан. . . Я думаю, ярл прав. DETERMINISTIC охватывает это понятие, по крайней мере, для хранимых процедур SQL. Я использую термин «стабильный» для запросов, которые имеют ORDER BY с уникальными ключами, но относятся к сортировке.   -  person Gordon Linoff    schedule 02.10.2019


Ответы (1)


Идемпотентные операции

может применяться несколько раз без изменения результата после первоначального применения.

Например, функция f является идемпотентной, если для всех входных данных x она выполняется

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

Я часто сталкивался с этой концепцией в контексте идемпотентных HTTP-запросов и внутри контекст функционального программирования как ссылочная прозрачность.

person Mario Galic    schedule 02.10.2019