The process is quite straight forward, when I run a standard
INSERT statement with Mysql, I can provide additional properties for dealing with
DUPLICATE KEY, e.g. the record already exists.
Here is an example:
INSERT INTO `table` (`name`, `created`, `modified`)
VALUES ('Jamie', NOW(), NOW())
ON DUPLICATE KEY
UPDATE `name` = 'Jamie', `modified` = NOW()
Notice how in the UPDATE statement I'm only updating the name and modified date.
Another nice example can be used for keeping track of the number of times a tag is used. Imagine you have a table with a list of tags and their associated count. You can leverage the above functionality to increase the count each time the tag is used again:
INSERT INTO `tags` (`tag`, `count`, `created`, `modified`)
VALUES ('mysql', 1, NOW(), NOW())
ON DUPLICATE KEY
UPDATE `count` = `count` + 1, `modified` = NOW()
That's it! No more need to right functionality like:
if ($id == 0) {
// do insert
} else {
// do update
}
For my information, visit Mysql Documentation.
Published on Oct 3, 2012
Tags: SQL Tutorials for Beginners, Intermediate and Advanced Users
| insert
| update
| duplicate