- MySQLi 教程
- MySQLi - 首页
- MySQLi - 简介
- MySQLi - PHP 语法
- MySQLi - 连接
- MySQLi - 创建数据库
- MySQLi - 删除数据库
- MySQLi - 选择数据库
- MySQLi - 创建表
- MySQLi - 删除表
- MySQLi - 插入查询
- MySQLi - 选择查询
- MySQLi - WHERE 子句
- MySQLi - 更新查询
- MySQLi - 删除查询
- MySQLi - LIKE 子句
- MySQLi - 排序结果
- MySQLi - 使用连接
- MySQLi - 处理 NULL 值
- 获取和使用 MySQLi 元数据
- MySQL
- MySQL - 安装
- MySQL - 管理
- MySQL - 数据类型
- MySQL - 正则表达式
- MySQL - 事务
- MySQL - ALTER 命令
- MySQL - 索引
- MySQL - 临时表
- MySQL - 克隆表
- MySQL - 使用序列
- MySQL - 处理重复项
- MySQLi 有用资源
- MySQLi - 有用函数
- MySQLi - 快速指南
- MySQLi - 有用资源
- MySQLi - 讨论
MySQLi - 克隆表
可能存在需要表的确切副本的情况,而 CREATE TABLE ... SELECT 不适合您的目的,因为副本必须包含相同的索引、默认值等。
您可以按照以下步骤处理这种情况:
使用 SHOW CREATE TABLE 获取指定源表结构、索引等的 CREATE TABLE 语句。
修改该语句以将表名更改为克隆表的表名,并执行该语句。这样,您将拥有精确的克隆表。
可选地,如果您还需要复制表内容,则也发出 INSERT INTO ... SELECT 语句。
示例
尝试以下示例为 tutorials_inf 创建一个克隆表。
步骤 1
获取有关表的完整结构。
mysql> SHOW CREATE TABLE tutorials_inf \G;
*************************** 1. row ***************************
Table: tutorials_inf
Create Table: CREATE TABLE `tutorials_inf` (
`id` int(11) NOT NULL,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `AUTHOR_INDEX` (`name`),
UNIQUE KEY `NAME_INDEX` (`name`),
KEY `id` (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = latin1
1 row in set (0.05 sec)
ERROR: No query specified
步骤 2
重命名此表并创建另一个表。
mysql> CREATE TABLE tutorials_clone( → id int(11) NOT NULL, → name varchar(20) NOT NULL, → PRIMARY KEY (id), → UNIQUE KEY AUTHOR_INDEX (name), → UNIQUE KEY NAME_INDEX (name), → KEY id (id)); Query OK, 0 rows affected (1.80 sec)
步骤 3
执行步骤 2 后,您将在数据库中创建一个克隆表。如果您想从旧表复制数据,则可以使用 INSERT INTO... SELECT 语句。
mysql> INSERT INTO tutorials_clone(id,name) SELECT id,name from tutorials_inf; Query OK, 4 rows affected (0.19 sec) Records: 4 Duplicates: 0 Warnings: 0
最后,您将获得您想要的精确克隆表。
广告