以下范例都是把 old_table 复制到 new_table.
先讲讲结论, 最推荐的作法是下述两行:
代码如下 | 复制代码 |
■CREATE TABLE new_table LIKE old_table; ■INSERT new_table SELECT * FROM old_table; |
以下来讲讲几种作法 和 优缺点.
MyISAM 的作法若比较暴力点的话, 可以用下述方式做:
代码如下 | 复制代码 |
1.CREATE TABLE new_table; |
这样子也可以复制完成, 但是这么暴力有可能会有些小问题要解决.
下述作法会比较建议(参考自此篇: sql - fastest way to copy a table in mysql), 不过有下述两种作法, 有些不同, 先写出作法, 再来解释差异.
?: 以下 old_table 若跨 DB, 都可以写成 old_db.old_table 来指定.
第一种作法: 一行语法复制 Table + Data, 不过需要手动增加 Primay、index key 等.
代码如下 | 复制代码 |
1.CREATE TABLE new_table SELECT * FROM old_table; # 这个作法 Primay、index key 都不会复制, 需要手动加 2.ALTER TABLE new_table ADD PRIMARY KEY (id); |
第二种作法: 先复制 Table schema, 再来 INSERT Data. (建议使用此作法, Schema 一定是一模一样的)
代码如下 | 复制代码 |
1.CREATE TABLE new_table LIKE old_table; 2.INSERT new_table SELECT * FROM old_table; |
先来讲讲第一种作法: (此作法 Schema 可能不同, Data 是会正确复制过来的)
代码如下 | 复制代码 |
■CREATE TABLE new_table SELECT * FROM old_table; |
■此行会把 Table 和 Data 都复制到 new_table, 但是 Table 使用的 Engine、语系编码 会跟 MySQL 预设的一样, 而不是 Copy old_table 的. 结果可能就会是下述的状况: (要看你的系统设定而定, old_table 和 new_table 的 schema 可能会不同, 但是 Data 是一致的)
代码如下 | 复制代码 |
■CREATE TABLE `old_table` ( ■CREATE TABLE `new_table` ( |
第二种作法: (此作法可以将 Schema 和 Data 都是一模一样的复制过来)
■CREATE TABLE new_table LIKE old_table;
■此行会完整复制 Table Schema, 先复制完 Table Schema 后, 再来把资料一笔一笔 INSERT 进去.
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔