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