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();
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的反馈!