加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql误删除表内数据怎么做

发布时间:2021-12-29 22:06:02 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍了mysql误删除表内数据怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 #添加数据 insert into testdb1.student(id,name,class,score) value(a,a,1,45),(2,b,1,
这篇文章主要介绍了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误删除表内数据怎么办”这篇文章对大家有帮助

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读