我有下表:
+-----------+--------+
| 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)
但我明白了
'查询输入必须至少包含一个表或查询'。
任何人都可以帮助我实现目标吗?
最佳答案
不能合并 Values
与 WHERE
条款。您需要使用 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/