11.6. УникалÑнÑе индекÑÑ
ÐндекÑÑ Ñакже могÑÑ Ð¾Ð±ÐµÑпеÑиваÑÑ ÑникалÑноÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² ÑÑолбÑе или ÑникалÑноÑÑÑ ÑоÑеÑÐ°Ð½Ð¸Ñ Ð·Ð½Ð°Ñений в неÑколÑÐºÐ¸Ñ ÑÑолбÑÐ°Ñ .
CREATE UNIQUE INDEXимÑONÑаблиÑа(ÑÑолбеÑ[, ...]) [ NULLS [ NOT ] DISTINCT ];
РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¾Ð±ÐµÑпеÑение ÑникалÑноÑÑи поддеÑживаÑÑ ÑолÑко индекÑÑ-B-деÑевÑÑ.
ÐÑли Ð¸Ð½Ð´ÐµÐºÑ ÑоздаÑÑÑÑ ÐºÐ°Ðº ÑникалÑнÑй, в ÑаблиÑÑ Ð½ÐµÐ»ÑÐ·Ñ Ð±ÑÐ´ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ Ð½ÐµÑколÑко ÑÑÑок Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñми знаÑениÑми клÑÑа индекÑа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ NULL в ÑникалÑном ÑÑолбÑе ÑÑиÑаÑÑÑÑ Ð½Ðµ ÑавнÑми дÑÑг дÑÑгÑ, Ñак ÑÑо в Ñаком ÑÑолбÑе Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÑколÑко знаÑений NULL. ÐаÑамеÑÑ NULLS NOT DISTINCT изменÑÐµÑ ÑÑо пÑавило, Ñак ÑÑо знаÑÐµÐ½Ð¸Ñ NULL в индекÑе ÑÑиÑаÑÑÑÑ ÑавнÑми дÑÑг дÑÑгÑ. СоÑÑавной ÑникалÑнÑй Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑолÑко Ñе ÑÑÑоки, в коÑоÑÑÑ
вÑе индекÑиÑÑемÑе ÑÑолбÑÑ ÑодеÑÐ¶Ð°Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñе знаÑениÑ.
Ðогда Ð´Ð»Ñ ÑаблиÑÑ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¾Ð³ÑаниÑение ÑникалÑноÑÑи или пеÑвиÑнÑй клÑÑ, Postgres Pro авÑомаÑиÑеÑки ÑоздаÑÑ ÑникалÑнÑй Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾ вÑем ÑÑолбÑам, ÑоÑÑавлÑÑÑим ÑÑо огÑаниÑение или пеÑвиÑнÑй клÑÑ (Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑоÑÑавнÑм). Такой Ð¸Ð½Ð´ÐµÐºÑ Ð¸ ÑвлÑеÑÑÑ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ð¼, коÑоÑÑй обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð²Ñполнение огÑаниÑениÑ.
ÐÑимеÑание
ÐÐ»Ñ ÑникалÑнÑÑ ÑÑолбÑов не нÑжно вÑÑÑнÑÑ ÑоздаваÑÑ Ð¾ÑделÑнÑе индекÑÑ â они пÑоÑÑо пÑодÑблиÑÑÑÑ Ð¸Ð½Ð´ÐµÐºÑÑ, ÑозданнÑе авÑомаÑиÑеÑки.