3
我有以下幾列Oracle表:甲骨文唯一約束 - 混合大小寫
ID
FUNCTION_ID
FUNCTION_ROLE
ID列是唯一的(序列),但我也希望兩個(FUNCTION_ID,FUNCTION_ROLE)組合也是獨一無二。
我的查詢是現象,因爲FUNCTION_ROLE是一個字符串,值可以是混合的情況下,什麼是爲了防止這種情況的發生,最好的辦法,即:
Data for this table:
Row 1: 1,1,TEST1
Row 2: 2,1,Test1
我希望得到一個獨特的嘗試插入第2行爲'Test1'時的約束違反與'TEST1'相同 - 只是情況不同。
我該如何防止這種情況,因爲我正在考慮創建另一個名爲FUNCTION_ROLE_UPPER的列,並將此列與FUNCTION_ID一起用於檢查唯一性 - 這是否是正確的方法?
謝謝。
謝謝@Branko - 理解基於函數的索引部分,但不理解虛擬列方面?你能否說明/提供例子。謝謝。 – tonyf 2012-02-28 04:31:08
@tonsils除了'UPPER(FUNCTION_ROLE)'也有一個名字外,這個想法基本上是一樣的,可以被查詢,正如任何普通的列和一個_true_ UNIQUE約束都可以在它上面創建,這允許一個FOREIGN KEY引用它(這是不可能的只有一個唯一的索引)。 – 2012-02-28 04:44:22
Gotcha - 謝謝你。 – tonyf 2012-02-28 04:56:19