mysql拷贝表的几种方式
MySQL 拷贝表常用操作方法总结。假设有一个表结构如下:
CREATE TABLE IF NOT EXISTS `admin` (
`id` int(6) unsigned NOT NULL auto_increment,
`username` varchar(50) NOT NULL default '',
`password` varchar(100) default NULL,
PRIMARY KEY (`id`)
)
ENGINE = MyISAM
DEFAULT CHARSET = latin1
AUTO_INCREMENT = 4;
方法 1:仅复制结构(不拷贝数据)
CREATE TABLE newadmin LIKE admin;
方法 2:复制数据但不保留主键和索引
CREATE TABLE newadmin AS
(
SELECT * FROM admin
);
方法 3:完整复制(包含结构、数据、主键、索引)
CREATE TABLE newadmin LIKE admin;
INSERT INTO newadmin SELECT * FROM admin;
方法 4:跨库复制
CREATE TABLE newadmin LIKE shop.admin;
CREATE TABLE newshop.newadmin LIKE shop.admin;
方法 5:仅拷贝部分字段
CREATE TABLE newadmin AS
(
SELECT username, password FROM admin
);
方法 6:拷贝时改名字段
CREATE TABLE newadmin AS
(
SELECT id, username AS uname, password AS pass FROM admin
);
方法 7:拷贝满足条件的行
CREATE TABLE newadmin AS
(
SELECT * FROM admin WHERE LEFT(username,1) = 's'
);
方法 8:创建表同时定义字段信息
CREATE TABLE newadmin
(
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
)
AS
(
SELECT * FROM admin
);