orb*_*ish 9 sql oracle database-design referential-integrity oracle11g
我正在寻找一种将应用程序配置表限制为1行的简单方法.我知道我可以使用包含子查询的虚拟列或顶部的物化视图来执行此操作,但实际上它是一个简单的表我想要一个约束,它不需要更多的行来实现而不是创建表.
我想到的最简单的方法是将ID字段设置为1,并且检查约束ID必须为1 - 但这会给表添加一个令人困惑的额外字段,所以我希望有一些显而易见的东西我缺少,像一个检查约束,其中UNIQUE_FIELD = MAX(UNIQUE_FIELD),这是不允许的.
Gar*_*ers 14
最简单的是常量上基于函数的唯一索引
> create unique index table_uk on one_row_table ('1');
Run Code Online (Sandbox Code Playgroud)
备择方案:
而不是一个表,你可以有一个DUAL视图,这实际上意味着任何UPDATE实际上是一个可能不合适的创建或替换视图.从包体或全局应用程序上下文返回值的函数可能是一种解决方法,如果它导致失效问题.
使用11g READ ONLY表(或者,在早期版本中,只读表空间中的表)是一个选项.
以下是一些选项:
SELECT 1024 as buffer_size, '/var/tmp' as temp_dir, 'other constant' as other_constant from dual.这不是一个可靠的解决方案.| 归档时间: |
|
| 查看次数: |
3530 次 |
| 最近记录: |