我正在尝试使一些 SQL 与 MySQL 一起工作,但在使用此插入语句时遇到了问题:
INSERT INTO properties (fkid, name, value)
SELECT 3, 'foo', 'bar'
WHERE NOT EXISTS (
SELECT 1 FROM properties WHERE fkid = 3 AND name = 'foo'
)
如果 fkid/name 已经存在,它应该是无操作的,我想要一些也适用于 Postgres 的东西。我现在确信有些愚蠢的东西我看不到。
对于它的价值,错误是:
You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near
'WHERE NOT EXISTS (SELECT 1 FROM vertex_properties WHERE vertex_id = 4 AND name ='
从我可以在此站点上看到的其他示例中,它应该可以工作。请有人能让我摆脱痛苦。
编辑:澄清一下,我想要一个跨平台(Postgres/MySQL)“如果不存在则插入”解决方案。INSERT IGNORE ...
仅适用于 MySQL,INSERT ... SELECT WHERE NOT EXISTS ...
似乎仅适用于 Postgres。