Как не дать пользователю повторно загрузить данные в БД из Excel файла

Рейтинг: 0Ответов: 1Опубликовано: 05.04.2023

такая ситуация. У меня есть сервис, куда входит пользователь и импортирует Excel файл, содержащий таблицу с данными, в которой 40-100 строк. Потом идет автоматический парсинг и построчный insert данных. Как я могу сделать проверку на "дурака" и защитить базу от повторного импорта файла? Например, если пользователь случайно/специально загрузит файл ещё раз. В БД на данный момент 2кк+ строк. Спасибо.

Ответы

▲ 2

Зависит от используемой СУБД, но универсальное решение - просто в коде перед вставкой проверять есть ли уже запись в базе данных, поискав ее по ключевым полям. Если это SQL server попробуйте так, выбрав набор полей которые уникальны для ваешго случая:

BEGIN
   IF NOT EXISTS (SELECT * FROM EmailsRecebidos 
                   WHERE Name = @_NAME
                   AND Email = @_EMAIL
                   AND Surname = @_SURNAME)
   BEGIN
       INSERT INTO Emails (Name, Email, Surname)
       VALUES (@_NAME, @_EMAIL, @_SURNAME)
   END
END