Предотвращение появления строк-дубликатов

Отсутствие дубликатов — это одно из самых важных требований к ка­честву данных. В этой области PostgreSQL, в отличие от многих дру­гих реляционных СУБД, предлагает несколько решений.
Выберите столбцы, которые необходимо сделать уникальными. Но сначала решите, все ли столбцы должны быть единственными в своем роде или только часть из них.
Начнем с такого примера Для предотвращения дублирования нужен уникальный индекс, ко­торый сервер БД сможет использовать, чтобы сделать уникальными необходимые столбцы.
Такой индекс для обычных типов данных можно выбрать одним из трех способов: Создать для выборки столбцов первичный ключ, который в таблице может быть только один. Теперь значения строк не могут быть определены как Null, Поскольку вы принудительно задаете значения столбцов Not null . ALTER TABLE Newcust ADD PRIMARY KEY; При этом создается новый индекс с именем Newcust_Pkey. Создать ограничение Unique для Этой выборки столбцов. Такой столбец может быть использован вместо или в качестве пер­вичного ключа, и их число в таблице неограниченн При этом будет создан новый индекс С Именем Newcust_ customerid_idx. Все эти способы исключают дубликаты. Во всех трех случаях соз­дастся индекс, хотя только в первых двух появляется формальное ограничение. И можно действовать любым способом, если у вас есть первичный ключ или уникальное ограничение, использующее не­сколько столбцов. Последний метод важен тем, что к индексу можно применить оператор Where. Это Может быть полезным в ситуациях, когда значе­ния данных в столбцах уникальны только при определенных обсто­ятельствах. Поэтому полученный индекс еще называют Частичным. можно было бы применить частичный индекс, чтобы уникальность в столбце Customerid Требовалась только для Status = • Open1.
Если необходимо наложить ограничение уникальности на данные более сложных типов, то запись придется усложнить. Вам помогут нижеследующие примеры. Начнем с самого простого: создадим таблицу из ячеек и поместим в них какие-нибудь данные. Если это ваша первая встреча с записью в PostgreSQL, устраивайтесь поудобнее и смотрите Здесь две ячейки, не касающиеся друг друга и не пересекающиеся, заданные координатами. При этом создается новый индекс newcust_customerid_excl. Уникальность всегда задается индексом. Каждый индекс определяет­ся оператором типа данных, который при добавлении новой строки или обновлении значений в столбцах проверяет, не нарушится ли уникальность.



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

Комментарии закрыты.