MySQL database replace into usage (enhanced version of insert)

Source: Internet
Author: User
Tags error code getdate mysql database

Error Code: 1062. Duplicate entry 'xxxxx' for key 'primary' (PRIMARY key conflict)

In this way, we have to check whether the primary key exists. If it exists, it is updated. If it does not exist, it is inserted. Or write an SQL flow control statement (if... else ...)
 

Mysql provides the same replace into and insert into functions. The difference is:

If this row of data already exists in the table (determined based on the primary key or unique index), delete the row of data and insert new data. Otherwise, insert new data directly.

Note: to judge whether duplicate data exists based on the primary key or unique index, the operated table must have a primary key or unique index. Otherwise, replace into inserts data directly.
 

Mysql replace into can be used in three ways. The simplest method is to replace the "insert" keyword with "replace.

Insert into t (...,...) values (...,...)

Change

Replace into t (...,...) values (...,...)

When inserting data into a table, you may encounter the following situations:

1. First, determine whether the data exists;

2. If it does not exist, insert it;

3. If yes, it is updated.

In SQL Server, you can perform the following operations:

If not exists (select 1 from t where id = 1)
Insert into t (id, update_time) values (1, getdate ())
Else
Update t set update_time = getdate () where id = 1

So how does MySQL implement this logic? Don't worry! MySQL has a simpler method: replace

Replace into t (id, update_time) values (1, now ());
Or

Replace into t (id, update_time) select 1, now ();


Replace into is similar to insert. The difference is that replace into first tries to insert data into the table:

1. If this row of data is found in the table (determined based on the primary key or unique index), delete the row of data and insert new data.

2. Otherwise, insert new data directly.

Note: the table to which data is inserted must have a primary key or a unique index! Otherwise, replace into inserts data directly, which leads to duplicate data in the table.


MySQL replace into has three forms:

1. replace into tbl_name (col_name,...) values (...)

2. replace into tbl_name (col_name,...) select...

3. replace into tbl_name set col_name = value ,...

The first two forms use more. The "into" keyword can be omitted, but it is better to add "into" to make it more intuitive. In addition, for columns without values, MySQL automatically assigns default values to these columns.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.