我想創建一個包含操作的獨特PostgreSQL索引。有誰知道這是否可能?創建包含操作的唯一PostgreSQL索引
CREATE UNIQUE INDEX ux_data ON table (name, color)
,我想要添加的操作是「NUM & new_num = 0」,其中num是現有的列和new_num要被插入的值。
這可能嗎?
更新:下面是關於我想要做的更多細節。
數據庫:
name color num
one red 5
two green 5
one red 8
我想要做的是防止在一個條目是不是唯一的,就像這樣:
的新條目1:名稱=一個,顏色=紅色,NUM = 1.
我們有匹配的名稱和顏色,在101 & 001 = 1開始的num檢查結果,該新條目1不是唯一的,但是並應拒絕,如果該號碼已更改爲2
新條目2:name = one,color = red,num = 2
現在我們有匹配的名稱和顏色。對於所有名稱/顏色匹配中的數字101 & 010 = 0和1000 & 0010 = 0,所以我們有一個唯一的條目。
這聽起來更像是一個檢查約束而不是索引。 – 2013-04-22 21:52:15
如果可以使用檢查約束來完成,我也會這樣做。我只是不知道是否可以檢查。就像這樣:CREATE UNIQUE INDEX ux_ft ON base.ft(ft_date DESC,ft_num,sq)WHERE(ver = true);,除了在db中檢查傳入值與值之外。 – 2013-04-22 22:38:29
請澄清你的問題。很難猜到你在做什麼。如果您找不到描述意圖的正確術語,請添加一個測試用例。 – 2013-04-23 00:08:08