Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет192/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   188   189   190   191   192   193   194   195   ...   256
sql osnovi yazika

CREATE INDEX имя-индекса
ON имя-таблицы ( имя-столбца NULLS FIRST, ... );
CREATE INDEX имя-индекса
ON имя-таблицы ( имя-столбца DESC NULLS LAST, ... );
8.3. Уникальные индексы
Индексы могут также использоваться для обеспечения уникальности значений ат-
рибутов в строках таблицы. В таком случае создается уникальный индекс. Для его
создания используется команда:
CREATE UNIQUE INDEX имя-индекса
ON имя-таблицы ( имя-столбца, ...);
Например, создадим уникальный индекс по столбцу model для таблицы «Самолеты»:
CREATE UNIQUE INDEX aircrafts_unique_model_key
ON aircrafts ( model );
В этом случае мы уже не сможем ввести в таблицу aircrafts строки, имеющие оди-
наковые наименования моделей самолетов. Конечно, мы могли при создании табли-
цы задать ограничение уникальности для столбца model, и тогда уникальный индекс
был бы создан автоматически.
Важно, что в уникальных индексах допускается наличие значений NULL, поскольку
они считаются не совпадающими ни с какими другими значениями, в том числе и
друг с другом. Если уникальный индекс создан по нескольким атрибутам, то совпа-
дающими считаются лишь те комбинации значений атрибутов в двух строках, в ко-
торых совпадают значения всех соответствующих атрибутов.
247


Глава 8. Индексы
8.4. Индексы на основе выражений
В команде создания индекса можно использовать не только имена столбцов, но так-
же функции и скалярные выражения, построенные на основе столбцов таблицы. На-
пример, если мы захотим запретить значения столбца model в таблице aircrafts,
отличающиеся только регистром символов, то создадим такой индекс:
CREATE UNIQUE INDEX aircrafts_unique_model_key
ON aircrafts ( lower( model ) );
Если теперь попытаться добавить строку, в которой значение атрибута model будет
Cessna 208 CARAVAN, то PostgreSQL выдаст сообщение об ошибке, даже если значение
атрибута aircraft_code будет уникальным.


Достарыңызбен бөлісу:
1   ...   188   189   190   191   192   193   194   195   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет