ms-access - MS Access 插入不存在的地方

标签 ms-access insert conditional where exists

我有下表:

+-----------+--------+
| FirstName | Active |
+-----------+--------+
| Rob       | TRUE   |
| Jason     | TRUE   |
| Mike      | FALSE  |
+-----------+--------+

仅当 John 的条目不存在时,我才想插入“John”(使用 Active=True)where Active=True.我尝试以下操作:
insert into testTable (FirstName, Active) values ('John',True) where not exists (select 1 from testTable where FirstName='John' and Active=True)

但我明白了
'查询输入必须至少包含一个表或查询'。

任何人都可以帮助我实现目标吗?

最佳答案

不能合并 ValuesWHERE条款。您需要使用 INSERT INTO ... SELECT反而。

由于您不想从表中插入值,因此需要使用虚拟表。我用 MSysObjects为此目的(这是一个始终存在且始终包含行的系统表):

INSERT INTO testTable (FirstName, Active) 
SELECT 'John', True
FROM (SELECT First(ID) From MSysObjects) dummy
WHERE NOT EXISTS (select 1 from testTable where FirstName='John' and Active=True)

关于ms-access - MS Access 插入不存在的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52309940/

相关文章:

PHP mysql Insert/Upload images to database/server 命名问题

android - 插入时数据类型不匹配(代码 20)

ms-access - 在Microsoft Access 2013中,如何获取当前ODBC连接的用户名?

PHP 简单搜索结果

vba - 在 Access 中设置子窗体的记录源

带条件的 PowerShell switch 语句

regex - MongoDB:使用 $cond 和 $regex 进行聚合

sql - 如何在单个查询中的直接 SQL 中合并双移动平均线?

mysql - Hibernate 查询语法错误

objective-c - 三元条件运算符中的赋值产生 “Expression is not assignable”错误