【发布时间】:2016-04-18 09:05:59
【问题描述】:
我使用以下查询仅在表不存在时将记录插入到表中:
INSERT INTO tblExample (exampleColumn)
SELECT 'test' FROM tblExample
WHERE NOT EXISTS (SELECT 1 FROM tblExample where exampleColumn = 'test');
只要表中至少有 1 条记录,它就可以正常工作。如果没有记录,则不会将记录插入表中。
谁能看到我的查询有什么问题?
谢谢!
【问题讨论】:
-
如预期的那样,如果您的表中没有行,则选择将返回 0 行!
-
谢谢@jarlh。您能否提出改进建议以实现我的目标?
-
您使用的是哪个 dbms?你们有单排桌子吗?
-
我正在使用 Apache Derby。
-
我会尝试类似:
insert into tblExample select * from ( values 'test') t WHERE NOT EXISTS (SELECT 1 FROM tblExample where exampleColumn = 'test');