2015-02-17 3 views
0

Мне было предложено создать индекс в таблице базы данных. У меня очень мало информации о базовой модели базы данных, но не должно быть никаких дубликатов.Создание индекса в базе данных Oracle

Мои вопросы: В этом отношении дубликаты не означают то же самое, что уникальный индекс? Этот индекс должен быть для двух столбцов, как я могу легко проверить наличие повторяющихся значений?

Любая помощь будет принята с благодарностью.

ответ

2

Вы бы проверить на наличие дубликатов, делая группу, и проверка подсчетов больше 1:

select col1, col2, count(*) 
from  your_table 
group by col1, col2 
having count(*) > 1; 

Если у вас есть требование, что вы не можете иметь более одной строки с одинаковыми значениями в наборе столбцы (то есть без дубликатов), это то же самое, что сказать, что эти столбцы должны быть уникальными во всех строках.

Если вы хотите обеспечить уникальность, вам лучше всего создать уникальное ограничение (да, уникальный индекс обеспечит уникальность, но создание уникального ограничения в верхней части индекса - лучшая практика. дать оптимизатору, тем больше вероятность, что он выберет хорошие пути выполнения для запросов!).

Смежные вопросы