@driverx18

Как выгрузить все поля, из-за которых при добавлении строки может выдавать ошибку из-за уникальности данных?

Есть таблица на 10 колонок. На 7 колонок стоит уникальный ключ, и если стараться добавить какую то строку, и вдруг она не проходит по уникальности - выдает ошибку из за уникального ключа. Нужно выгрузить все записи из-за которых может выдавать ошибку по уникальности. Не могу придумать, как это сделать, нужна помощь)

пример (из головы) есть колонки
категория, подкатегория, под-подкатегория, действие которое надо сделать
И в таблице уже заданы для какой то записи значения, например такие:
категория: 1, подкатегория: 2: под-подкатегория: 5, действие которое надо сделать: 2

Стоит уникальный ключ на первые три колонки. Если мы захотим добавить тоже для под-подкатегории 5 что либо с другим "действием которое надо сделать" (например с цифрой не 2, а 3 уже), то нам выбьется ошибка, по скольку уникальный ключ на первые три колонки стоит. Вот, и нужно выгрузить все записи которые мешают добавить запись
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
Нужно выгрузить все записи из-за которых может выдавать ошибку по уникальности
SELECT * FROM qTable WHERE qField = qValue
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Проверить, существует ли запись с аналогичным набором полей?
SELECT * FROM `table` WHERE `категория`='1' AND `подкатегория`='2' AND `под-подкатегория`='5'

Результатом этого запроса и будет одна запись, "мешающая" добавить новую запись.

Если дублирующую запись обязательно нужно добавить - расширяйте размер уникального индекса, добавляйте в него столбец `действие`. Или в новой записи меняйте `подкатегорию`/`под-подкатегорию`.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы