0

I'm trying to execute the following sql query on postgres:

INSERT INTO Works_On (ESSN,PNo,Hours) VALUES ('199112111',3,3)
ON DUPLICATE KEY UPDATE Hours = 3;

But when I do I get an error which follows:

psql:test2.sql:2: ERROR:  syntax error at or near "ON"
LINE 2: ON DUPLICATE KEY UPDATE Hours = 3;
        ^

I can't really find the error, help would be most appreciated!

4

1 回答 1

1

ON DUPLICATE KEY UPDATE在 postgresql 中不可用。您可以运行以下查询。

UPDATE Works_on SET Hours = 3 WHERE ESSN='199112111' AND PNo=3;
INSERT INTO table (id, field, field2)
       SELECT '199112111',3,3
       WHERE NOT EXISTS (SELECT 1 FROM Works_on WHERE ESSN='199112111' AND PNo=3);

在这里,UPDATE如果已经有一行,则查询将成功ESSN='199112111' AND PNo=3

INSERT如果行ESSN='199112111' AND PNo=3不存在,查询将成功。

于 2014-03-15T12:52:57.317 回答