在閱讀有關(guān)索引唯一性的文檔后,我一直試圖在Postgres中理清唯一性和索引之間的關(guān)系:向表添加唯一約束的首選方法是ALTER TABLE ... ADD CONSTRAINT。使用索引強(qiáng)制實(shí)施唯一約束可以被認(rèn)為是不應(yīng)直接訪問(wèn)的實(shí)現(xiàn)細(xì)節(jié)。但是,應(yīng)該知道,不需要在唯一列上手動(dòng)創(chuàng)建索引;這樣做只會(huì)復(fù)制自動(dòng)創(chuàng)建的索引。因此,采取的文檔在他們的話我打算只需要聲明的東西一樣獨(dú)特,并使用隱式索引 - 或 - 創(chuàng)建索引,而不是假定值是唯一的。這是一個(gè)錯(cuò)誤嗎? 我將從獨(dú)特性獲得什么樣的索引?假設(shè)只有btree會(huì)接受唯一約束,并且unique隱式創(chuàng)建索引,那么UNIQUE是否創(chuàng)建btree索引是否成立?我不想無(wú)意間在哈希索引上運(yùn)行范圍。
請(qǐng)問(wèn)PostgreSQL如何執(zhí)行UNIQUE約束/它使用什么類型的索引?
慕俠2389804
2020-01-07 10:28:36