Welcome 微信登录

首页 / 数据库 / MySQL / 在MySQL中拷贝表的几种方式

假如我们有以下这样一个表: 引用id      username    password
-----------------------------------
1       admin       *************
2       sameer      *************
3       stewart     *************
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. 下面这个语句会拷贝表结构到新表newadmin中。 (不会拷贝表中的数据)
引用
CREATE TABLE newadmin LIKE admin
2. 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个表不会有主键,索引。
引用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
)Linux下配置和安装MySQLUbuntu SQL Developer相关资讯      mysql 
  • 数据库服务器 MySQL  (08/15/2013 06:50:23)
  • MySQL 5.6 GA 及逃亡潮  (02/08/2013 14:36:35)
  • MySQL 5.5.22、5.1.62、5.0.96全线  (03/22/2012 19:03:49)
  • MySQL Administrator连接VMWare下  (05/24/2013 09:20:58)
  • MySQL 5.1.68 发布  (02/05/2013 08:37:47)
  • CentOS 5.2+MySQL+Heartbeat双机互  (01/29/2012 11:16:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数