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