Cover Image for MySQL Insert On Duplicate Key Update
82 views

MySQL Insert On Duplicate Key Update

The MySQL can use the INSERT ... ON DUPLICATE KEY UPDATE statement to insert a new record into a table. If a duplicate key violation occurs, meaning that the new record has a primary key or unique constraint value that already exists in the table, the statement will update the existing record with the new values instead of inserting a duplicate. This is a way to handle conflicting records and ensure data integrity.

The basic syntax for the INSERT ... ON DUPLICATE KEY UPDATE statement is as follows:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATE
column1 = value1, column2 = value2, ...;

Here’s a breakdown of each part of the statement:

  • table_name: This is the name of the table into which you want to insert or update data.
  • (column1, column2, ...): You specify the columns into which you want to insert data in the table.
  • VALUES (value1, value2, ...): You provide the values you want to insert into the specified columns.
  • ON DUPLICATE KEY UPDATE: This part of the statement indicates that if there’s a duplicate key violation, the subsequent part of the statement should be executed.
  • column1 = value1, column2 = value2, ...: In the event of a duplicate key violation, you specify which columns should be updated with which values.

Here’s an example of how to use the INSERT ... ON DUPLICATE KEY UPDATE statement:

Suppose you have a table called employees with a primary key employee_id and you want to insert a new employee record. If a record with the same employee_id already exists, you want to update the employee’s information. If not, you want to insert a new record.

INSERT INTO employees (employee_id, first_name, last_name, salary)
VALUES (101, 'John', 'Doe', 50000)
ON DUPLICATE KEY UPDATE
first_name = VALUES(first_name), last_name = VALUES(last_name), salary = VALUES(salary);

In this example, if a record with employee_id 101 already exists, the ON DUPLICATE KEY UPDATE clause will update the first_name, last_name, and salary of the existing record with the values specified. If no duplicate key violation occurs, a new record will be inserted with the provided values.

This statement is particularly useful when dealing with scenarios where you want to insert new records or update existing records in a single operation, making it a convenient way to handle data upserts.

YOU MAY ALSO LIKE...

The Tech Thunder

The Tech Thunder

The Tech Thunder


COMMENTS