只读列
适用于 ❌ 开源版 ✅ Express 版 ✅ 专业版 ✅ 企业版
列可能是只读的原因有很多,包括
- 如果数据库产品支持,则该列被正式标记为
READONLY
。 - 该列来自视图,并且整个视图或仅该特定列不可更新。
- 用户缺少对该列的
INSERT
和/或UPDATE
授权。 - 该列是使用
[ GENERATED ALWAYS ] AS <expression>
计算的 (DEFAULT
列不是只读的) - 存在阻止写入该列的触发器。
jOOQ 的代码生成器可以检测到其中一些情况,并将列标记为只读,这意味着该列在 DML 语句中不会被考虑,例如 INSERT 或 UPDATE,或 UpdatableRecord CRUD 调用。 要配置此类只读列的运行时行为,请参阅相关的 关于只读列的部分。
也可以使用合成只读列配置手动将列标记为只读。
限制
readonly
标志是生成的org.jooq.DataType
的属性。 因此,只能对使该标志可用于 jOOQ 的表达式强制执行该属性。 例如,如果您使用的是plain SQL 模板,而没有传递启用readonly
标志的DataType
,则无法强制执行。 另请参阅需要代码生成的功能以获取更多详细信息。
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的意见!