可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15

DETERMINISTIC特性

适用于 ❌ 开源版   ✅ Express 版   ✅ 专业版   ✅ 企业版

一些方言要求显式指定函数的几个特性。 DETERMINISTIC 特性可以用来告诉数据库,函数的内容由用户保证是“确定性的”(或者在 PostgreSQL 中是“IMMUTABLE”),这意味着函数的结果纯粹由函数参数定义(而不是数据或会话值,或者当前时间或随机数生成器等),这样函数表达式就可以在调用点被结果值替换。 这样的函数也被称为无副作用和纯函数。 一些方言(例如 Oracle)允许在基于函数的索引中使用 DETERMINISTIC 函数。

如果您的方言不支持 DETERMINISTIC,您仍然可以指定它,jOOQ 会在生成的 SQL 中简单地忽略它。

create.createFunction("f1").returns(INTEGER).deterministic().as(return_(1)).execute();
create.createFunction("f2").returns(INTEGER).notDeterministic().as(return_(rand())).execute();

反馈

您对此页面有任何反馈吗? 我们很乐意听到您的反馈!

The jOOQ Logo