Я работаю над проектом на C#, используя sql-сервер в качестве базы данных. Поэтому проблема заключается в том, что в моем проекте есть алгоритм, который каждый раз возвращает одно значение; который сохраняется в базе данных (как мое требование к проекту). Если альго повторяет значение, это также будет сохраняться в базе данных, которая не требуется (дублирование) и вызывает некоторые проблемы. Мне нужна помощь для преодоления проблемы, когда уникальное значение сохраняется только один раз, когда это происходит; нет повторений в базе данных. Я попытался сделать этот столбец первичным ключом, но затем я обнаружил нарушение первичного ключа.Исключение первичного ключевого дублирования
ответ
просто использовать EXISTS запрос либо в линию или в хранимой процедуре
Ваша процедура запроса может проверить, если строка уже существует
Edit: Aha жаль забыла НЕ, что было бы глупо: D
IF NOT EXISTS(SELECT UniqueValue FROM UniqueValuesTable WHERE UniqueValue = @NewValue)
INSERT INTO UniqueValuesTable VALUES (@NewValue)
Edit: вот SQL скрипку, чтобы показать это работает
http://sqlfiddle.com/#!3/b87f9/3
Как Демс указывалось, операция не атомная, поэтому в нескольких сессии ситуации не может быть нарушение PK еще
Альтернатива есть:
INSERT INTO UniqueValuesTable SELECT @NewValue WHERE NOT EXISTS (SELECT UniqueValue FROM UniqueValuesTable WHERE UniqueValue = @NewValue)
Я не выбираю значение из таблицы, я вставляю значение из algo в базу данных. –
Да, и это то, что делает этот запрос - проверяет, существует ли уже существующее значение, и если оно не вставляет его – Charleh
INSERT INTO damidata ("+ subject +") VALUES ('"+ d [i] .ToString() +" ') этот запрос damidata - это имя таблицы («+ subject +»), которое является правдивым, которое содержит имя colum и (' "+ d [i] .ToString() +" ') - это значения gatting из algorithem. –
- 1. Дублирования первичного ключа
- 2. проблема пользовательского первичного ключевого имени
- 3. mysql duplicate entry для ключевого первичного, когда нет первичного ключа
- 4. Избегайте ошибки дублирования ключевого блока mongodb
- 5. Повторяющаяся запись 'ID' для ключевого первичного?
- 6. Исключение первичного ключа Entity Framework
- 7. Недостающее исключение ключевого слова Oracle
- 8. Как избежать дублирования записей без первичного ключа и уникального ключа?
- 9. Выбросьте лишнее исключение, чтобы избежать дублирования кода
- 10. Отсутствует ошибка ключевого слова NULL при попытке избежать дублирования
- 11. Повторяющееся исключение первичного ключа Сервер MSSQL 2008
- 12. Приращение значения идентификатора первичного ключа при нарушении уникального ключевого ограничения
- 13. Вставить `id` автоинкремент первичного ключевого поля явно в laravel 5.2
- 14. Исключение основного ключевого ключа Realm: значение уже существует
- 15. Исключение NoReverseMatch - перенаправление с аргументами ключевого слова
- 16. Регулярное выражение Исключительное исключение ключевого слова
- 17. Исключение ключевого слова SQL Server 2012
- 18. Влияние ключевого слова «Супер» в подклассах «Исключение»
- 19. Как избежать дублирования ключей исключения эффективно
- 20. Инкапсуляция связанных полей в сопутствующий объект/класс и исключение дублирования
- 21. исключает исключение из-за дублирования объекта в спящем режиме
- 22. MySQL - Исключение строк из Select на основе дублирования двух столбцов
- 23. Android Realm - ограничение первичного ключа Исключение и дублирование
- 24. Обновление Entity в EF6 дает исключение первичного ключа
- 25. Исключение первичного ключа в dumpdata Django с естественными ключами
- 26. Не удалось поймать исключение первичного ключа в сервлетах
- 27. Исключение первичного нарушения ключа с SqlDataAdapter bulk insert
- 28. обновление первичного ключа Джанго MySQL
- 29. Можно ли отменить исключение «аргумент ключевого слова» в python 2.6?
- 30. Класс Cast Исключение, начинающееся с определенного ключевого элемента
Сообщение код используется для сохранения значения к базе данных. Затем мы можем изменить его в соответствии с вашими потребностями. Например, только вставка, если значение еще не существует, и/или подтверждение того, было ли вставлено значение или значение уже присутствовало. – MatBailie