没有唯一索引且没有主键的更新或插入

时间:2019-05-08 12:48:42

标签: mysql mariadb

我正在尝试更新值或将值插入MariaDB表。不幸的是,主键是带有auto_increment的简单整数。没有其他唯一约束。由于这种表结构,我不能在重复键过程中使用插入,因为它只会添加另一个条目。

如果3个字段“ csv”,“项目”和“用户”等于我要查找的字段,我想更新该条目。如果没有匹配项,我想插入新行。

我在stackoverflow上发现了这种方法,但是它没有解决如果有命中我想更新行的部分:

INSERT INTO `table` (value1, value2) 
SELECT 'stuff for value1', 'stuff for value2' FROM `table` 
WHERE NOT EXISTS (SELECT * FROM `table` 
                  WHERE value1='stuff for value1' AND value2='stuff for value2') 
LIMIT 1

我尝试了以下方法,因为它看起来最有前途。这会导致SQL错误:

UPDATE finding SET filename = 'ABC' WHERE user='user' AND project = 'project' AND csv='cv';
IF  ROW_COUNT() = 0 THEN
    INSERT INTO finding (user, project, filename, csv) VALUES ('user', 'project', 'ABC', 'cv');
END-IF

>>> You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 2

我还为IF子句尝试了多种语法变体。但是我无法使其正常工作。

感谢您的帮助。谢谢。

0 个答案:

没有答案
相关问题