You are viewing this site as a guest. Join our community to get your questions answered and share knowledge. Active members may advertise and ask for a website critique.

MySQL INSERT UPDATE

They have: 120 posts

Joined: Aug 2008

Hey guys,

I'm looking for an efficient method of executing the following pseudo-code in mysql.

if (exist row where id == $id) {
UPDATE table SET value = '$value' WHERE id = '$id';
} else {
INSERT INTO table (id, value) VALUES ('$id', '$value');
}

I thought there was a MySQL statement called INSERT UPDATE, but I must be mistaken. What's the easiest way to achieve this?

They have: 114 posts

Joined: Dec 2008

"INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;"

http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

Cheers,
Shaggy.

pr0gr4mm3r's picture

He has: 1,423 posts

Joined: Sep 2006

Didn't know that was possible. I always used the conditional method that serpico posted. I will have to remember this.

They have: 120 posts

Joined: Aug 2008

cool - i'll give that a go.

They have: 120 posts

Joined: Aug 2008

Works perfect. Thanks Shaggy!

They have: 14 posts

Joined: Nov 2005

Thats going to save a lot of time! I should be reading the mysql docs instead of the forums. Thanks for the tip!

n1tr0b's picture

They have: 5 posts

Joined: Apr 2009

Thanks to this thread it really helped me.... for updating some of my content

They have: 19 posts

Joined: Feb 2009

I tried to follow, It didn't work for me.

Megatron's picture

They have: 2 posts

Joined: May 2009

You have to have a relatively newer MySQL server... I think on duplicate key became available on mysql 4.1

They have: 2 posts

Joined: Dec 2009

i think shaggy has posted the most exact answer near to me.
i really appreciate his little effort.