MySQL 复制表详解及实例代码
MySQL复制表详解
如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。如果仅仅使用CREATETABLE...SELECT命令,是无法实现的。
本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:
- 使用SHOWCREATETABLE命令获取创建数据表(CREATETABLE)语句,该语句包含了原数据表的结构,索引等。
- 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令将完全的复制数据表结构。
- 如果你想复制表的内容,你就可以使用INSERTINTO...SELECT语句来实现。
实例
尝试以下实例来复制表tutorials_tbl。
步骤一:
获取数据表的完整结构。
mysql>SHOWCREATETABLEtutorials_tbl\G; ***************************1.row*************************** Table:tutorials_tbl CreateTable:CREATETABLE`tutorials_tbl`( `tutorial_id`int(11)NOTNULLauto_increment, `tutorial_title`varchar(100)NOTNULLdefault'', `tutorial_author`varchar(40)NOTNULLdefault'', `submission_date`datedefaultNULL, PRIMARYKEY(`tutorial_id`), UNIQUEKEY`AUTHOR_INDEX`(`tutorial_author`) )TYPE=MyISAM 1rowinset(0.00sec) ERROR: Noqueryspecified
步骤二:
修改SQL语句的数据表名,并执行SQL语句。
mysql>CREATETABLE`clone_tbl`( ->`tutorial_id`int(11)NOTNULLauto_increment, ->`tutorial_title`varchar(100)NOTNULLdefault'', ->`tutorial_author`varchar(40)NOTNULLdefault'', ->`submission_date`datedefaultNULL, ->PRIMARYKEY(`tutorial_id`), ->UNIQUEKEY`AUTHOR_INDEX`(`tutorial_author`) ->)TYPE=MyISAM; QueryOK,0rowsaffected(1.80sec)
步骤三:
执行完第二步骤后,你将在数据库中创建新的克隆表clone_tbl。如果你想拷贝数据表的数据你可以使用INSERTINTO...SELECT语句来实现。
mysql>INSERTINTOclone_tbl(tutorial_id, ->tutorial_title, ->tutorial_author, ->submission_date) ->SELECTtutorial_id,tutorial_title, ->tutorial_author,submission_date ->FROMtutorials_tbl; QueryOK,3rowsaffected(0.07sec) Records:3Duplicates:0Warnings:0
执行以上步骤后,你将完整的复制表,包括表结构及表数据。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!