Как вставить только уникальные данные в базу данных доступа - PullRequest
4 голосов
/ 16 ноября 2010

У меня есть база данных доступа, которую мне нужно обновлять, только если моя информация уникальна.Есть ли простое заявление SQL для достижения этой цели?Будет ли «вставить игнорировать» работу с доступом?

Пример: у меня информация хранится в массиве ('bob', '34', 'hair').Если моя база данных содержит запись, которая соответствует этим трем столбцам, я бы не хотел, чтобы она была вставлена.Если он будет признан уникальным, я хотел бы вставить его.

Я пишу это в холодном синтезе, но просто не могу понять, что sql правильно.

Ответы [ 2 ]

3 голосов
/ 16 ноября 2010

Уникальный индекс - это всегда хорошая идея, если поле или набор полей должны быть уникальными. Если у вас есть уникальный индекс в Access в трех полях, вставка не удастся.

Возможно создать отдельный запрос, который вставляет только запись, в которой соответствующая запись не найдена, например:

INSERT INTO Shows (ForeName,Reviews,Musical)
SELECT "bob" As ForeName,"34" As Reviews,"hair" As Musical
FROM (SELECT Count(*) As  ExistsCount 
      FROM Shows 
      WHERE ForeName = "bob",Reviews = "34",Musical = "hair")  AS  e
WHERE e.ExistsCount=0
3 голосов
/ 16 ноября 2010

Прежде чем делать вставку, сделайте выборку для этих значений.Если вы не получите запись назад, то вы знаете, что ее безопасно вставить.Просто используйте два отдельных запроса, один для проверки, и если запись не найдена, то вставка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...