Adamski
Adamski

Reputation: 6029

getting on duplicate key mysql to work

i am having trouble getting this to work,

can any one spot the issue?

INSERT INTO `page_category_link` (page_id,cat_id) 
VALUES ('4','2') 
ON DUPLICATE KEY UPDATE page_id=VALUES('4') AND cat_id=VALUES('2') WHERE id=2

many thanks

Upvotes: 0

Views: 98

Answers (3)

dkamins
dkamins

Reputation: 21948

INSERT INTO `page_category_link`
(page_id,cat_id) VALUES ('4','2')
ON DUPLICATE KEY UPDATE page_id='4', cat_id='2'

Upvotes: 4

gpresland
gpresland

Reputation: 1819

Something like

INSERT INTO page_category_link (page_id, cat_id) VALUES ('4', '2') ON DUPLICATE KEY UPDATE page_id=page_id, cat_id=cat_id WHERE id=2

Upvotes: -1

Glen Solsberry
Glen Solsberry

Reputation: 12320

You want to use VALUES(page_id) AND VALUES(cat_id). You're essentially telling MySQL to use the value that was assigned to the page_id and cat_id columns to update the table with.

INSERT INTO `page_category_link` (page_id,cat_id) VALUES ('4','2')
ON DUPLICATE KEY UPDATE page_id = VALUES(page_id) AND cat_id=VALUES(cat_id)

Upvotes: 0

Related Questions