MySQL Copy或Clone表是一个函数,允许无涯教程创建现有表 的 复制表,包括表结构,索引,约束,默认值等。复制在新表中的现有表中的数据在表失败中备份数据的情况下非常有用。例如,当无涯教程需要测试或执行某些东西而不影响原始表的情况,也是有利的,例如,复制生产数据进行测试。
无涯教程可以使用 CREATE TABLE和SELECT语句将现有表复制到新表中,如下所示:
CREATE TABLE new_table_name SELECT column1, column2, column3 FROM existing_table_name;
从上面,首先,它创建一个新表,该表格在Create表语句中。其次,SELECT语句的结果集定义了新表的结构。最后,MYSQL填充从SELECT语句到新创建的表的数据。
链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-clone-tables.html
来源:LearnFk无涯教程网
如果需要从现有表中的仅将部分数据复制到新表,请使用 WHERE子句,如下所示:
CREATE TABLE new_table_name SELECT column1, column2, column3 FROM existing_table_name WHERE condition;
无涯教程必须确保要创建的表格不应存在于数据库中。 如果不存在于mysql中的子句允许无涯教程检查数据库中是否存在于数据库之前是否存在。因此,以下声明更清楚地解释:
CREATE TABLE IF NOT EXISTS new_table_name SELECT column1, column2, column3 FROM existing_table_name WHERE condition;
尝试以下示例为 Learnfk_tbl 创建一个克隆表。
第1步 - 获取有关表的完整结构。
mysql> SHOW CREATE TABLE Learnfk_tbl\G; *************************** 1. row *************************** Table: Learnfk_tbl Create Table: CREATE TABLE `Learnfk_tbl` ( `tutorial_id` int(11) NOT NULL auto_increment, `tutorial_title` varchar(100) NOT NULL default '', `tutorial_author` varchar(40) NOT NULL default '', `submission_date` date default NULL, PRIMARY KEY (`tutorial_id`), UNIQUE KEY `AUTHOR_INDEX` (`tutorial_author`) ) TYPE = MyISAM 1 row in set (0.00 sec) ERROR: No query specified
第2步 - 重命名该表并创建另一个表。
mysql> CREATE TABLE clone_tbl ( -> tutorial_id int(11) NOT NULL auto_increment, -> tutorial_title varchar(100) NOT NULL default '', -> tutorial_author varchar(40) NOT NULL default '', -> submission_date date default NULL, -> PRIMARY KEY (tutorial_id), -> UNIQUE KEY AUTHOR_INDEX (tutorial_author) -> ) TYPE = MyISAM; Query OK, 0 rows affected (1.80 sec)
第3步 - 执行第2步之后,您将在数据库中创建一个克隆表,如果要从旧表中复制数据,则可以使用INSERT INTO ... SELECT语句来完成。
mysql> INSERT INTO clone_tbl (tutorial_id, -> tutorial_title, -> tutorial_author, -> submission_date) -> SELECT tutorial_id,tutorial_title, -> tutorial_author,submission_date -> FROM Learnfk_tbl; Query OK, 3 rows affected (0.07 sec) Records: 3 Duplicates: 0 Warnings: 0
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)