Copying / exporting data to an existing table.
INSERT....SELECT

We can export or copy data from one table to another table by using insert command. We can also use replace statement to copy data. We will try with insert command first. The difference between insert and replace statement is the way primary key or the unique key is handled. Here we are using two existing tables and inserting data from one table to other. To learn how to copy data by creating a new table you can read create table command here.

We will use our student table for this. You can download the sql dump file of two tables at the end of this page for your use.
Student table with 35 records
Student2 table with 0 records

INSERT ... SELECT

Now we will apply this sql command to export data from student table to student2 table
insert into student2 select * from student;
With this command we will copy all data from student to student2 table
We can restrict the data we want to export by adding where clause to the query like this.
insert into student2 select * from student where class = 'Four';
Please note that if the student2 table is not empty then the unique constraints for the field id will not allow duplicate id so data will not be updated. Here if we want to update student2 table then we have to use replace command in place of insert command.
 replace into student2 select * from student where class = 'Four';
WE can use selected columns to insert the records, here is an example.
insert into student2 (id,name,class,mark,sex) select id,name,class,mark,sex  from student

on Duplicate Key Update

Without using replace command we can also use on duplicate key update to update the student2 table.

After keeping all the records in student2 tables let us try this query
insert into student2 (id,name,class,mark,sex)
select id,name,class,mark,sex from student where student.id=3
This query will generate the error like this as id =3 is already exist in student2 table and that will violate the unique constraint.
#1062 - Duplicate entry '3' for key 'PRIMARY'
Now let us try this query
insert into student2 (id,name,class,mark,sex)  select id,name,class,mark,sex
from student where id=3 on duplicate key update mark=5
The above query will insert the record and update the mark column to 5, this way we can update records using on duplicate key command.

Down load the SQL DUMP of this student table
Visitors Rating
Your Rating




nikhil

20-05-2009

plz tell me about, database? what is the procedure to copy one database to annother database in mysql.
shekhar sinha

06-08-2009

can constraints be copied from one table to another table?
shekhar sinha

06-08-2009

can only primary key data be deleted or dropped?
shekhar sinha

06-08-2009

can we define more than one primary key in one table?
prasath

18-01-2010

select * into "new table name" from database.dbo.tablename
eliazar espina

17-07-2010

can you help me with copying data from table1 to table2 for example in postgres database..
nikita

18-08-2010

can we copy content of a table to another table using ||
swapna.k

07-10-2010

Could any one tell me the answer how to Create one table from another table without copying the data from the first table.
Sromana Mukhopadhyay

16-03-2018

I really like the REPLACE SELECT statement.

Post Comment This is for short comments only. Use the forum for more discussions.








HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
©2000-2019 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer