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