4
A
回答
8
您可以创建要求各行,以满足一些条件表的约束,在这种情况下的总列是1:
create table my_table (
col1 number,
col2 number,
col3 number,
col4 number,
constraint assert_sum_is_one check (col1 + col2 + col3 + col4 = 1)
)
试图插入或更新行至不总1将导致违反约束的异常。
4
如果您在11g中,您可以使用Oracle虚拟列:
http://www.oracle-base.com/articles/11g/virtual-columns-11gr1.php
与检查约束相结合。
CREATE TABLE myTable (
id NUMBER,
col1 NUMBER(3),
col1 NUMBER(3),
col3 NUMBER(3),
colsum NUMBER GENERATED ALWAYS AS (col1 + col2 + col3) VIRTUAL,
CONSTRAINT pk_mytable PRIMARY KEY (id)
);
,然后添加约束检查colsum总是恰好1
编辑:波希米亚的答案是简单,更好。在这种情况下,虚拟列的唯一优点是总和总是持久/可见,但是如果约束阻止总和不是1以外的任何值,那么这不是必需的。为了完成,我会留下这个答案。
+0
非常有助于任何会计师的东西。 – 2013-04-22 13:11:39
相关问题
- 1. 如何在1:1和1:M关系的sqlite中创建表?
- 2. 创建一个表列作为sql中两列的总和
- 3. 使用多个表中的总和创建视图(Oracle SQL)
- 4. 如何在SQL中的两个表中创建一个表格
- 5. 如何在Tensorflow中创建列总和?
- 6. 如何用一个轴的总和创建一个新的行
- 7. SQL创建表错误1
- 8. 如何创建一个检查(表A.Id和表B.Id和TypeId = 1)?
- 9. 如何计算表中总数-1和总数1? (C++)
- 10. 每个新创建的行jQuery总和
- 11. 从列表中创建一个有1列和n行的DateFrame
- 12. 使用动态sql创建一个带有总和的表格
- 13. 在Hibernate中创建动态sql;我如何实现1 = 1
- 14. 如何在SQL Server 2008中创建1对1(或0)关系
- 15. 如何汇总SQL表中的行?
- 16. 你如何在Scala 2.9中创建100个1的列表?
- 17. SQL,乘两列在同一行中,并创建一个“总”列
- 18. 在sql server中创建一个总计行
- 19. 在PHP中创建所有表格行字段的总和
- 20. 如何从连接表中获取创建的列的总和? SQL/C#
- 21. 如何在SQL ORACLE中总结一个表的行数?
- 22. 如何创建一个表,其行的引用2个现有表中的1个(并且只有1个)?
- 23. sql如何在同一个表中创建一个行的多个副本
- 24. SQl的 - 如何创建一个表
- 25. 在SQL中创建了两个表的联合之后,如何在SSRS中的单个行中显示每个表的总和Tablix
- 26. 两个表的SQL总和
- 27. 如何在SQL中创建表模型?
- 28. 如何在SQL中创建注释表
- 29. 如何在sql中的子查询中创建2列的总和?
- 30. sql:在表中创建一个表
你问是否可以创建一个约束,强制这是真实的?或者你在问别的东西吗?如果是这样,什么? – Bohemian 2012-08-15 07:29:08
我认为我们需要更多信息。你可以使用表格和查询的结果应该是什么? – Roger 2012-08-15 07:29:27
@波希米亚我希望它等于1 – Ofer 2012-08-15 07:30:13