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

#sql #erwin

Вопрос:

 INSERT INTO CUSTOMER_t
(CustomerID, CustomerName, CustomerStreet, CustomerCity, CustomerState, CustomerZip, CreditLimit)
VALUES(2000, 'Acme TNT', '5460 Dusty Ln.', 'Wiley', 'UT', '75688', 120);
 

ошибка:

Msg 2627, Уровень 14, Состояние 1, Строка 3 Нарушение ограничения ПЕРВИЧНОГО КЛЮЧА «XPKCUSTOMER_t». Не удается вставить дубликат ключа в dbo объекта.CUSTOMER_t’. Значение дубликата ключа равно (2000). Заявление было прекращено.

Комментарии:

1. Не вставляйте значение, которое уже существует в таблице. Измените значение. Или настройте столбец автоматического увеличения/идентификации и позвольте базе данных присвоить значение.

Ответ №1:

Чтобы понять, как работают базы данных, вам нужно помнить, что таблицы содержат информацию о реальных вещах в реальном мире.

В этом случае у вас есть таблица клиентов. Одного из этих клиентов зовут Acme TNT, и у них есть идентификатор клиента 2000.

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

Любой, кто работает с базами данных, будет хорошо знаком с этим типом сообщений. Они не будут спрашивать себя, как решить проблему, а вместо этого посмотрят, почему они пытаются добавить то же самое во второй раз.