欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql 复制表结构和数据实例代码

程序员文章站 2023-12-17 17:36:16
在mysql数据库开发中,我们有时候需要复制或拷贝一张表结构和数据到例外一张表,这个时候我们可以使用create ... select ... from语句来实现,本文章向...

在mysql数据库开发中,我们有时候需要复制或拷贝一张表结构和数据到例外一张表,这个时候我们可以使用create ... select ... from语句来实现,本文章向大家介绍mysql复制表结构和数据一个简单实例,

 比如现在有一张表,我们要将该表复制一份,以备以后使用,那么如何使用mysql语句来实现呢?其实我们可以直接使用create ... select ... from语句来实现,具体实现方法请看下面实例。 

我们先来创建一张topic表,创建topic表的sql语句如下:

mysql> create table topic(
  ->  topicid   smallint not null auto_increment primary key,
  ->  name    varchar(50) not null,
  ->  instock   smallint unsigned not null,
  ->  onorder   smallint unsigned not null,
  ->  reserved  smallint unsigned not null,
  ->  department enum('classical', 'popular') not null,
  ->  category  varchar(20) not null,
  ->  rowupdate  timestamp not null
  -> );

向topic表中插入数据:

mysql> insert into topic (name,     instock, onorder, reserved, department,  category) values
  ->          ('java',     10,   5,    3,    'popular',  'rock'),
  ->          ('javascript',  10,   5,    3,    'classical', 'opera'),
  ->          ('c sharp',    17,   4,    1,    'popular',  'jazz'),
  ->          ('c',       9,    4,    2,    'classical', 'dance'),
  ->          ('c++',      24,   2,    5,    'classical', 'general'),
  ->          ('perl',     16,   6,    8,    'classical', 'vocal'),
  ->          ('python',    2,    25,   6,    'popular',  'blues'),
  ->          ('php',      32,   3,    10,    'popular',  'jazz'),
  ->          ('asp.net',    12,   15,   13,    'popular',  'country'),
  ->          ('vb.net',    5,    20,   10,    'popular',  'new age'),
  ->          ('vc.net',    24,   11,   14,    'popular',  'new age'),
  ->          ('uml',      42,   17,   17,    'classical', 'general'),
  ->          ('www.java2s.com',25,   44,   28,    'classical', 'dance'),
  ->          ('oracle',    32,   15,   12,    'classical', 'general'),
  ->          ('pl/sql',    20,   10,   5,    'classical', 'opera'),
  ->          ('sql server',  23,   12,   8,    'classical', 'general');
query ok, 16 rows affected (0.00 sec)
records: 16 duplicates: 0 warnings: 0

现在我们要将这张表复制一份,具体操作如下:

mysql> create table topic2
  -> (
  ->  topicid   smallint not null auto_increment primary key,
  ->  name    varchar(50) not null,
  ->  instock   smallint unsigned not null,
  ->  onorder   smallint unsigned not null,
  ->  reserved  smallint unsigned not null,
  ->  department enum('classical', 'popular') not null,
  ->  category  varchar(20) not null,
  ->  rowupdate  timestamp not null
  -> )
  -> select *
  -> from topic

这样表topic2和topic表不仅拥有相同的表结构,表数据也是一样的了。

例外,如果我们只需要复制表结构,不需要复制数据,也可以使用create like来实现:

create table a like users;

感谢阅读此文,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:

下一篇: