Ограничения уникальности

Ограничения уникальности можно отложить, то есть присвоить это­му параметру значение deferrable, однако есть некоторые нюансы, которые делают эту возможность в PostgreSQL 9.0 не такой уж по­лезной: необходимо указать, что ограничение будет deferrable при создании таблицы с помощью create table. В create table as select или с помощью alter table этого сделать нельзя; откладываемые ограничения уникальности нельзя исполь­зовать вместе с внешними ключами. При попытке добавить внешний ключ, который ссылается на откладываемое ограни­чение, вы получите сообщение об ошибке. Команда разработчиков PostgreSQL работает над этой проблемой, и в последующих релизах она, скорее всего, будет решена. Заметим, что в PostgreSQL допустимы индексы с совпадающими определениями. В каких-то случаях это может быть полезным, но может и раздражать, если вы случайно создали несколько индексов вместо одного. Вы также можете наложить на индексы ограничения одним из вышеперечисленных способов, однако следует иметь в виду, что все ограничения в таком случае будут значительно усилены. Уникальности выборки столбцов можно добиться и без создания ин­декса. Это пригодится, если уникальность нужна, а времени на созда­ние индекса нет. Необходимо выполнить следующее: И в том и в другом случае вы получите уникальное значение, ко­торое можно использовать в качестве ключа для каждой строки. При этом уникальность не является вынужденной, и не накладываются никакие ограничения. То есть сохраняется возможность, что кто-то вернет последовательности более раннее значение, которое приведет к появлению дубликатов. Возможно, вам подойдут почти уникальные данные, такие как значения функции timeofday, показывающей возрастающее время в микросекундах.



Рубрика: Женский интерес