MySQL备份表数据,备份表名加上当前时间
我们经常会使用到备份数据表再操作相应数据表数据情况,那就可以写一个脚步进行,备份我们相应数据库表结构和数据,在对原本表进行操作,以防万一,操作不当。
1:如果只对数据进行备份,对表结构(主键,索引,id自增,字段非空等没做保留的情况下可以直接使用下面这个备份方法):
CREATE TABLE new_table_name AS SELECT * FROM table_name;
例子:对下面这个表进行一个备份

运行:

结果:

2:如果是备份当前完整表结构和数据:可以使用下面这个方法。
在MySQL5.1以上的版本中,prepare语句可以支持这样的操作。
我们可以用set @var=...设置变量,然后用prepare stml from @var设置动态sql语句,最后用EXECUTE stml;执行语句。
下面是以时间为表名,动态备份一个表的sql执行过程:
SET @sqlstr = CONCAT( 'create table test_delete_data_', DATE_FORMAT( CURDATE(), '%Y_%m_%d' ), ' like test_delete_data' );
PREPARE stmt1
FROM
@sqlstr;
EXECUTE stmt1;
SET @sqlstr = CONCAT( 'insert into test_delete_data_', DATE_FORMAT( CURDATE(), '%Y_%m_%d' ), ' select * from test_delete_data' );
PREPARE stmt1
FROM
@sqlstr;
EXECUTE stmt1;
运行:

结果:

再说个删除操作语句:场景:要删除当前表与另外一张表相关联数据,保存不关联数据;
例子:还是以上面test_delete_data表为关联的表当例子,要删除的表名为:delete_table。
语句:delete delete_table from delete_table
where id in (select apply_id from test_delete_data);

相关推荐
-
MySQL 安装失败,提示Apply Security Settings 的处理办法
MySQL 安装失败,提示Apply Security Settings 的处理办法2025-04-20 01:54:57 -
MySQL事务隔离级别详解2025-04-20 01:44:01
-
一文说清nginx规则匹配(含案例分析)2025-04-20 01:10:02
-
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)2025-04-20 00:55:25 -
php定义变量规则不能包含哪些字符?2025-04-20 00:27:24