拓展阅读
MySQL 02 truncate table 与 delete 清空表的区别和坑
MySQL 03 Expression 1 of ORDER BY clause is not in SELECT list,references column
MySQL 04 EMOJI 表情与 UTF8MB4 的故事
MySQL 05 MySQL入门教程(MySQL tutorial book)
MySQL 06 mysql 如何实现类似 oracle 的 merge into
MySQL 08 datetime timestamp 以及如何自动更新,如何实现范围查询
MySQL 09 MySQL-09-SP mysql 存储过程
场景
如果我们希望对一些历史的脏数据之类的做清理,那么步骤应该是什么?
直接写一个 delete 语句,一把结束吗?
千万别。
删除的步骤
备份表+数据
CREATE TABLE 新表名 LIKE 原表名;
INSERT INTO 新表名 SELECT * FROM 原表名;
避免错删除。
如果有成熟的备份工具,导出之类的也可以
最好提前准备好 roll-back 语句。
确认删除数据
删除之前,首先确认数据数量。
写一个 count 语句
执行删除
删除之后,确认一下对应的数据,随时做好准备。
确认数据是否正确。
chat
如何创建表+备份数据
要在 MySQL 中通过 SQL 创建一张结构相同的表,并且将数据备份到新表中,你可以按照以下步骤操作:
1. 创建结构相同的表
使用 CREATE TABLE ... LIKE ...
语句来创建一个与现有表结构相同的新表。
CREATE TABLE 新表名 LIKE 原表名;
2. 备份数据到新表中
使用 INSERT INTO ... SELECT ...
语句将原表中的数据复制到新表中。
INSERT INTO 新表名 SELECT * FROM 原表名;
例子
假设你有一张名为 employees
的表,现在你想创建一张名为 employees_backup
的新表,并将 employees
表中的数据备份到 employees_backup
中。
-- 1. 创建结构相同的表
CREATE TABLE employees_backup LIKE employees;
-- 2. 备份数据到新表中
INSERT INTO employees_backup SELECT * FROM employees;
这样就会创建一张与 employees
表结构相同的 employees_backup
表,并且将 employees
表中的所有数据复制到 employees_backup
表中。