我对运行在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;
如果此值不存在,则为插入值。
是否可以在两种数据库(mariaDB和mysql)上都使用这种查询?
答案 0 :(得分:2)
您可以创建内联视图(1列1值,类似于Oracle中的double):
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;