暂无图片
MySQL 怎么根据已有的记录逆向生成insert语句?
我来答
分享
暂无图片 匿名用户
MySQL 怎么根据已有的记录逆向生成insert语句?

MySQL 怎么根据已有的记录逆向生成insert语句?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
薛晓刚

给你举个例子。

我以前做的。

mysqlbinlog --start-datetime='2018-08-21 12:50:00' --stop-datetime='2018-08-21 13:05:00' --base64-output=decode-rows -v -v /var/lib/mysql/mysql-bin.000007 |sed -n '/### DELETE FROM `x`.`a`/,/COMMIT/p' >/setup/delete.txt


#180821 12:55:03 server id 1 end_log_pos 18532 CRC32 0x3cd1c9c1 Table_map: `x`.`a` mapped to number 131

# at 18532

#180821 12:55:03 server id 1 end_log_pos 18582 CRC32 0xd49a6ad0 Delete_rows: table id 131 flags: STMT_END_F

### DELETE FROM `x`.`a`

### WHERE

### @1=1

### DELETE FROM `x`.`a`

### WHERE

### @1=2

### DELETE FROM `x`.`a`

### WHERE

### @1=3

# at 18582

#180821 12:55:03 server id 1 end_log_pos 18613 CRC32 0xe3a62189 Xid = 2077

COMMIT/*!*/;

DELIMITER ;


cat /setup/delete.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/values (/g;' | sed -r 's/(@1.*),/\1);/g' | sed 's/@[1]=//g' > /setup/test.txt


cat /setup/delete.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/values (/g;' | sed -r 's/(@2.*),/\1);/g' | sed 's/@[1-2]=//g' > /setup/test.txt


mysql> select * from a;

Empty set (0.00 sec)


mysql> source /setup/test.txt

Query OK, 1 row affected (0.00 sec)


Query OK, 1 row affected (0.00 sec)


Query OK, 1 row affected (0.00 sec)


mysql> select * from a;

+------+------+

| id | name |

+------+------+

| 1 | a |

| 2 | b |

| 3 | c |

+------+------+

3 rows in set (0.00 sec)

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MariaDB的备份用xtrabackup工具能热备份吗?
回答 1
官方没有说支持mariadb,而且源码是依赖mysql的,估计是不支持mariadb了
如何进行两个MySQL 数据库之间数据增量同步?
回答 2
那么用ogg吧
入门小白求问,mysql存储过程里面如何写异常?
回答 2
已采纳
declareHANDLERFOR…声明异常处理的语法:DECLARE{EXIT|CONTINUE}HANDLERFOR{errornumber|SQLSTATEerrorstring|conditi
现在是否还有必要学习oracle、mysql?
回答 1
很难说什么方向比较好,在于客观机遇,在于自身努力。但是选择做技术的话,就多吸收,多学习,无论是开源数据库,还是国产数据库,总会有用武之地。行业的发展总是会经历初期的快速膨胀,到顶峰之后的扶摇震荡,然后
关于MySQL 8.0的直方图,下面说法正确的是?
回答 1
已采纳
B当ANALYZETABLE语句指定的桶数大于列中不同值的数量时创建单点直方图D当ANALYZETABLE语句指定的桶数小于列中不同值的数量时创建等高直方图
mysql rpm包安装,不需要安装下面哪个
回答 6
已采纳
MySQLdevelMySQLclient MySQLbench 这几个应该都是不必须的。
mysql的slave库可以在做slave吗?
回答 2
已采纳
可以,级联复制可以的。
怎么理解全索引扫描??
回答 1
fullindexscan:全索引扫描,查询时,遍历索引树来获取数据行。如果数据不是密集的会产生随机IO,在执行计划中是Type列,indexfulltablescan:通过读物理表获取数据,顺序读磁
MySQL 索引树是在每次搜索之前建立,还是建立索引的时候生成的?
回答 2
已采纳
建立索引的时候生成的,索引和数据是一样的,都是实实在在存在的,每次更新插入删除都会维护索引,如果每次搜索之前建立,那搜索多慢呢
请教各位,ogg repicat 如何过滤日期类型的字段,具体如何实现,麻烦指导下?
回答 1
已采纳
使用sqlexeccolmap