Здесь есть два разных понятия, поэтому вам может потребоваться объединить несколько терминов по той же причине, что нет единственного прилагательного для описания «красного круглого дома».
> Изменения состояния вне области транзакции базы данных не допускаются.
> Если функция изменяет данные в базе данных, это нормально, потому что, если вызывающая транзакция откатывается, эффект функции тоже.
Существует только "область действия базы данных" и "область действия сеанса". Функция не имеет понятия «объем транзакции». Функцию можно использовать внутри транзакции или за пределами этой транзакции , однако с точки зрения функции не будет никакой разницы.
С точки зрения функции, «область транзакции» равна точно «область базы данных». Вещи в незафиксированной транзакции не должны быть зафиксированы, и поскольку это относится ко всем транзакциям, в этом нет ничего особенного:
Если вы вызываете функцию дважды в одной транзакции с изоляцией REPEATABLE READ, вы должны получить тот же результат, даже если другие клиенты вносят изменения в базу данных.
потому что это описание транзакции, а не функции. Мы можем смело игнорировать любое описание, касающееся «транзакций».
> Он может запросить таблицу базы данных, но не может прочитать файл из файловой системы или проверить связь с веб-сайтом и т. Д.
> Изменения в состоянии вне области действия базы данных транзакция не допускаются. Функция не должна отправлять электронные письма, записывать в файловую систему и сохранять значения в memcached
и т. Д.
> Если функция изменяет данные в базе данных, это нормально , потому что, если вызывающая транзакция откатывается, тогда эффект функции слишком .
> Но нет никаких различий между изменениями, внесенными в транзакцию [база данных], и изменениями, внесенными вне этой области.
Ближайший термин, вероятно, будет "базой данных".
> Аналогично, функция не имеет побочных эффектов, за исключением в пределах той же транзакции [база данных].
Что означает, что имеет побочных эффектов.
> Функции базы данных, которые я имею в виду, могут основываться на состоянии данных, и эта функция также может влиять на состояние данных.
Ближайшим термином является «ненулевой», или «возможно, с состоянием» .
Итак, вывод «Локальная ненулепотентная функция БД».