MySQL中的备份表可以备份原表的数据和结构,避免操作原表时产生错误。它有以下几种创建方式:
- CREATE TABLE … LIKE: 复制表结构,不包含数据。
sql
CREATE TABLE table2 LIKE table1;
- CREATE TABLE … SELECT: 复制表结构和数据。
sql
CREATE TABLE table2 (SELECT * FROM table1);
- ALTER TABLE … LIKE: 复制原表结构到已经存在的表,会覆盖原表定义。
sql
ALTER TABLE table2
LIKE table1;
- INSERT INTO … SELECT: 仅复制表数据,要求表结构相同或兼容。
sql
INSERT INTO table2
SELECT * FROM table1;
主要作用:
- 实验数据 – 对备份表进行更改,不影响原表。
- 恢复数据 – 当原表发生错误或数据丢失时,可以使用备份表进行恢复。
- 归档数据 – 备份表可以用于归档历史数据。
- 分析数据 – 可以在备份表上进行各种数据分析,不影响线上业务。
例1:使用CREATE TABLE … SELECT创建备份表。
sql
CREATE TABLE products (
id INT PRIMARY KEY,
name VARCHAR(20)
);
INSERT INTO products VALUES(1,'Laptop'),(2,'Phone');
CREATE TABLE products_backup AS
SELECT * FROM products;
SELECT * FROM products_backup;
输出:
+----+---------+
| id | name |
+----+---------+
| 1 | Laptop |
| 2 | Phone |
+----+---------+
products_backup表包含products表的结构和数据,可以对其进行任意操作,不会影响原表。