Access97: вставить INTO, если не существует
Мне нужно сделать очень простую задачу: выполнить запрос INSERT INTO, только если запись не существует в таблице. Я нашел много подсказок, но ни один из них не работает в SQL Access97.
Пример:
IF NOT EXISTS ( SELECT 1 FROM Users WHERE FirstName = 'John' AND LastName = 'Smith' )
BEGIN
INSERT INTO Users (FirstName, LastName) VALUES ('John', 'Smith')
END
это не будет работать, потому что ЕСЛИ NOT EXISTS недействительно.
Как правильно сделать это в одном предложении SQL?
1 ответ
Решение
Вы можете встроить это в insert . .. select
:
INSERT INTO Users (FirstName, LastName)
SELECT TOP 1 'John', 'Smith'
FROM Users
WHERE NOT EXISTS ( SELECT 1 FROM Users WHERE FirstName = 'John' AND LastName = 'Smith' );