插入到不存在的地方

wpcxdonn  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(340)

我的一个脚本使用mysql数据库,而不是mariadb数据库。

INSERT INTO myTable (item1, item2) 
    SELECT 'A','B' 
    WHERE NOT EXISTS (
        SELECT item1, item2
        FROM myTable 
        WHERE myTable.item1='A' AND myTable.item2='B') LIMIT 1;

如果该值不存在,则为insert值。
有没有可能在两个数据库(mariadb和mysql)上都使用这种查询?

qpgpyjmq

qpgpyjmq1#

您可以创建内联视图(1列1值,如oracle中的dual):

INSERT INTO myTable (item1, item2) 
    SELECT 'A','B' 
    FROM (SELECT 1 AS dummy) s
    WHERE NOT EXISTS (
        SELECT item1, item2
        FROM myTable 
        WHERE myTable.item1='A' AND myTable.item2='B') LIMIT 1;

-- or use dual directly
INSERT INTO myTable (item1, item2) 
    SELECT 'A','B' 
    FROM dual
    WHERE NOT EXISTS (
        SELECT item1, item2
        FROM myTable 
        WHERE myTable.item1='A' AND myTable.item2='B') LIMIT 1;

dbfiddle mysql 8.0版
小提琴手

相关问题