Чтобы проверить, что данные не дублируются, нужно найти записи с одинаковыми значениями ключевых полей.
Для этого используют SQL-запрос с GROUP BY и HAVING COUNT(*) > 1.
Пример:
Проверяем, что нет повторяющихся e-mail в таблице users:
SELECT email, COUNT(*) FROM users GROUP BY email HAVING COUNT(*) > 1;
Если запрос ничего не вернул -> дубликатов нет.
Дубликаты — это строки, где ключевые поля совпадают (например, одинаковый e-mail, ID, номер договора и т.д.).
Дубликаты нарушают целостность данных и могут приводить к ошибкам в логике приложения.
Проверка по одному полю
SELECT email, COUNT(*) AS duplicates FROM users GROUP BY email HAVING COUNT(*) > 1;
Результат: покажет e-mail, которые встречаются более 1 раза.
Проверка по нескольким полям
Если уникальность должна быть, например, по комбинации (first_name, last_name, birth_date):
SELECT first_name, last_name, birth_date, COUNT(*) AS cnt FROM customers GROUP BY first_name, last_name, birth_date HAVING COUNT(*) > 1;
-> покажет группы клиентов, совпадающих по ФИО и дате рождения.
Проверка по ID (если он должен быть уникален)
SELECT id, COUNT(*) FROM users GROUP BY id HAVING COUNT(*) > 1;
Если хоть одна строка вернулась -> нарушена уникальность первичного ключа.
Если тестировщик проверяет API или UI:
Выполнить запрос в БД с GROUP BY.
Или проверить через отчёт / экспорт CSV — отсортировать по нужному полю и убедиться, что значения не повторяются.
Или протестировать API: добавить 2 одинаковых пользователя -> ожидать ошибку (409 Conflict, Duplicate entry).
Пример API-проверки:
POST /api/users
{ "email": "test@mail.com" }
POST /api/users
{ "email": "test@mail.com" }
-> ожидаем ответ:
409 Conflict — User with this email already exists.
Если хочешь просто сравнить количество уникальных и общих записей:
SELECT COUNT(*) AS total, COUNT(DISTINCT email) AS unique_emails FROM users;
Если total = unique_emails -> дубликатов нет.
На уровне БД: добавить уникальный индекс (UNIQUE(email));
На уровне API: делать проверку перед вставкой (SELECT ... WHERE email = ...);
На уровне UI: валидация при вводе.
Проверить дубликаты можно с помощью:
GROUP BY ... HAVING COUNT(*) > 1 — увидеть повторяющиеся значения,
COUNT(DISTINCT) — проверить количество уникальных строк,
уникальных индексов — чтобы предотвратить дубли.
Если запрос не вернул строк — дубликатов нет.
Чтобы пожаловаться или сообщить об ошибке, войдите в аккаунт или зарегистрируйтесь.