2022
我们一起努力

mysql误删除表内数据怎么办 - MySQL数据库

这篇文章主要介绍了mysql误删除表内数据怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

#添加数据

insert into testdb1.student(id,name,class,score) value(a,'a',1,45),(2,'b',1,46),(3,'c',2,89),(4,'d',2,90),(5,'e',3,67),(6,'f',3,87),(7,'g',4,77),(8,'h',4,91);

mysql> select * from testdb1.student;

+——+——+——-+——-+

| id   | name | class | score |

+——+——+——-+——-+

|    1 | a    | 1     |    45 |

|    2 | b    | 1     |    46 |

|    3 | c    | 2     |    89 |

|    4 | d    | 2     |    90 |

|    5 | e    | 3     |    67 |

|    6 | f    | 3     |    87 |

|    7 | g    | 4     |    77 |

|    8 | h    | 4     |    91 |

+——+——+——-+——-+

8 rows in set (0.00 sec)

#删除数据

mysql> delete from testdb1.student;

Query OK, 8 rows affected (0.00 sec)

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

mysql> show master statusG

*************************** 1. row ***************************

             File: ray-bin.000004

         Position: 5444

     Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

[root@localhost ~]# mysqlbinlog /data/3306/logs/ray-bin.000004 -v -v -S /data/3306/soket/mysql.sock –base64-output=decode-rows | sed -n '/### DELETE FROM `testdb1`.`student`/,/COMMIT/P' | sed -n 's### p' | sed "s//*.**///g" | sed 's/`//g' > /tmp/1.txt

[root@localhost ~]# sed 's/DELETE FROM/insert into/g' /tmp/1.txt | sed 's/WHERE/select/g' | sed 's/@4.*/;/g' | sed 's/@[1-3].*/,/g' | sed 's/[^@](.*)=//g' > execSQL.sql

要点:

     sed 's/@4.*/;/g'  把@4后面匹配所有字符所有长度,替换,在匹配的后面添加。代表整行;

     sed 's/@[1-3].*/,/g'    把@后面从1到3匹配,在匹配后面所有字符所有长度,在匹配项后面添加逗号。代表整行。

     sed 's/[^@](.*)=//g'  把已@开头的到=以内的内容替换

mysql> source /root/execSQL.sql

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

mysql> commit;

Query OK, 0 rows affected (0.01 sec)

mysql> select * from testdb1.student;

+——+——+——-+——-+

| id   | name | class | score |

+——+——+——-+——-+

|    1 | a    | 1     |    45 |

|    2 | b    | 1     |    46 |

|    3 | c    | 2     |    89 |

|    4 | d    | 2     |    90 |

|    5 | e    | 3     |    67 |

|    6 | f    | 3     |    87 |

|    7 | g    | 4     |    77 |

|    8 | h    | 4     |    91 |

+——+——+——-+——-+

8 rows in set (0.00 sec)

感谢你能够认真阅读完这篇文章,希望小编分享的“mysql误删除表内数据怎么办”这篇文章对大家有帮助,同时也希望大家多多支持云,关注云行业资讯频道,更多相关知识等着你来学习!

赞(0)
文章名称:《mysql误删除表内数据怎么办 - MySQL数据库》
文章链接:https://www.fzvps.com/94700.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!