I have an innodb table called word_frequency with 4 columns
- ID - INT (pk) (auto_increment)
- USER_ID - INT (fk)
- WORD - STRING
- FREQUENCY - INT
I have tried multiple different queries but cannot seem to perform an upsert properly. I only want to update the table when USER_ID and WORD both already exist, else new row. But It just keeps creating new rows with the auto increment ID.
INSERT INTO word_frequency (USER_ID, WORD, FREQUENCY)
VALUES(1, "word", 32)
ON DUPLICATE KEY UPDATE FREQUENCY = FREQUENCY + 27;
I even tried
INSERT INTO word_frequency (USER_ID, WORD, FREQUENCY)
VALUES(1, "word", 32)
ON DUPLICATE KEY UPDATE ID=LAST_INSERT_ID(ID), FREQUENCY = FREQUENCY + 27;
and
INSERT INTO word_frequency (ID,USER_ID, WORD, FREQUENCY)
VALUES(LAST_INSERT_ID(ID+1),1, "word", 32)
ON DUPLICATE KEY UPDATE ID=LAST_INSERT_ID(ID), FREQUENCY = FREQUENCY + 27;
where am I going wrong here?
Any help would be appreciated