这篇文章主要介绍了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: 1Duplicates: 0Warnings: 0
Query OK, 1 row affected (0.00 sec)
Records: 1Duplicates: 0Warnings: 0
Query OK, 1 row affected (0.00 sec)
Records: 1Duplicates: 0Warnings: 0
Query OK, 1 row affected (0.00 sec)
Records: 1Duplicates: 0Warnings: 0
Query OK, 1 row affected (0.00 sec)
Records: 1Duplicates: 0Warnings: 0
Query OK, 1 row affected (0.00 sec)
Records: 1Duplicates: 0Warnings: 0
Query OK, 1 row affected (0.00 sec)
Records: 1Duplicates: 0Warnings: 0
Query OK, 1 row affected (0.00 sec)
Records: 1Duplicates: 0Warnings: 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误删除表内数据怎么办”这篇文章对大家有帮助,同时也希望大家多多支持云技术,关注云技术行业资讯频道,更多相关知识等着你来学习!
相关推荐: MySQL为什么不建议用UUID做innodb主键
这篇文章将为大家详细讲解有关MySQL为免费主机域名什么不免费主机域名建议用UUID做innodb主键,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1).UUID虽然能够保证ID的唯一性,但是无法满足业务系统需要的很多其他…