如果条件 mysql 不存在则插入一个元组

insert a tuple if not exists a condition mysql

我想编写一个在满足条件时插入到元组中的查询。 例如

table r:

CREATE TABLE r(A INT, B INT)

table b:

CREATE TABLE b(C INT, D INT, E INT)

如果 b 中没有像 (1, 2, 2) 这样的元组,我想将元组 (1,1) 插入到 r 中。

我试过这个查询,但出现语法错误:

IF NOT EXISTS(SELECT * FROM b WHERE C=1 AND D=2 AND E=2)
Begin
    INSERT INTO r VALUES(1, 1)
End

有没有办法做到这一点?

您可以使用下面的 SQL 查询。在上面 post 中,您正在尝试使用过程,但这不是正确的方法;关注 given link 了解更多关于 procedure

INSERT INTO r (A,B)
SELECT * FROM (SELECT 1 AS A, 1 AS B) AS temp
WHERE NOT EXISTS (
    SELECT * FROM b WHERE C=1 AND D=2 AND E=2
) LIMIT 1;

我建议这样写:

INSERT INTO r (A, B)
    SELECT 1, 1
    WHERE NOT EXISTS (SELECT 1 FROM b WHERE C = 1 AND D = 2 AND E = 2);