Access97:如果不存在则插入

Posted

技术标签:

【中文标题】Access97:如果不存在则插入【英文标题】:Access97: INSERT INTO if not exists 【发布时间】:2017-11-14 19:11:23 【问题描述】:

我需要做一个非常简单的任务:仅当表中不存在记录时才执行 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

这不起作用,因为 IF 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' );

【讨论】:

以上是关于Access97:如果不存在则插入的主要内容,如果未能解决你的问题,请参考以下文章

如果不存在则插入mysql,如果存在则不更新

HSQLDB 如果不存在则插入,如果存在则更新

Mysql插入数据:不存在则插入,存在则跳过或更新

MySQL INSERT插入条件判断:如果不存在则插入

数据库:如果存在则“更新”如果不存在则插入 [重复]

检查 MS Access 数据库表,如果不存在则创建它