gpt4 book ai didi

mysql - 检查等效行是否已存在的 INSERT 语句

转载 作者:行者123 更新时间:2023-11-29 01:44:28 25 4
gpt4 key购买 nike

在 MySQL 数据库中,我有一个表 test,它有两列 foobar。我正在尝试编写单个 SQL 语句,仅当这样的行尚不存在时才插入该行。我已经尝试了以下方法,但如果表格为空则不起作用:

INSERT INTO test (foo, bar) 
SELECT 'foo', 'bar'
FROM test
WHERE NOT EXISTS
(SELECT 1 FROM test WHERE foo = 'foo' AND bar = 'bar')
LIMIT 1;

最佳答案

测试表是空的,所以Select中不会有记录进来。因此,请将 Dual 表与 Select 一起使用。

    INSERT INTO test (foo, bar) 
SELECT 'foo',
'bar'
From DUAL
WHERE NOT EXISTS (SELECT 1
FROM test
WHERE foo = 'foo'
AND bar = 'bar')

DUAL 纯粹是为了方便那些要求所有 SELECT 语句都应该有 FROM 和可能的其他子句的人。 MySQL 可能会忽略这些子句。如果没有引用表,MySQL 不需要 FROM DUAL

关于mysql - 检查等效行是否已存在的 INSERT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com