문제

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!

도움이 되었습니까?

해결책

ON DUPLICATE KEY UPDATE is not available in postgresql. You can run the following query.

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);

Here , UPDATE query will succeed if there is already a row with ESSN='199112111' AND PNo=3

INSERT query will succeed if row with ESSN='199112111' AND PNo=3 does not exist.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top