MySQL复制表结果及数据
1、复制表结构及数据到新表
create table table_name_new select * from table_name_old;
注:此命令使用方便,唯一不好的就是新表中没有了旧表的primary key、Extra(auto_increment)等属性,需要再手动添加主键等。
2、仅复制表结构到新表
create table table_name_new select * from table_name_old where 1=2;
或
create table table_name_new like table_name_old;
3、复制旧表的数据到新表(假设两个表结构一样)
insert into table_name_new select * from table_name_old;
4、复制旧表的数据到新表(假设两个表结构不一样)
insert into table_name_new(字段1,字段2) select (字段1,字段2) from table_name_old;
5、表不在同一数据库中(如:db1 table_name1,db2 table_name2)
完全复制 insert into db1.table_name1 select * from db2.table_name2;
不复制重复记录 insert into db1.table_name1 select distinct * from db2.table_name2;
6、查看表的创建SQL
show create table table_name;
7、清除表数据
delete from table_name;
或
truncate table_name
注:两都都能达到清除数据的目的,但有一点区别,delete删除时,新的记录主键如id以原删除点开始增加,比如原来有5条记录,id=5,现新增id从6开始;truncate则相当于删除表再创建表,id从1开始,执行效率来说truncate要高,truncate删除后不记录mysql日志,不可以恢复数据
Leave A Comment