共計 2257 個字符,預計需要花費 6 分鐘才能閱讀完成。
這篇文章主要介紹了 mysql 誤刪除表內數據怎么辦,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
#添加數據
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 status\G
*************************** 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.*/\0;/g | sed s/@[1-3].*/\0,/g | sed s/[^@]\(.*\)=//g execSQL.sql
要點:
sed s/@4.*/\0;/g 把 @4 后面匹配所有字符所有長度,替換,在匹配的后面添加。\0 代表整行;
sed s/@[1-3].*/\0,/g 把 @后面從 1 到 3 匹配,在匹配后面所有字符所有長度,在匹配項后面添加逗號。\0 代表整行。
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)
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“mysql 誤刪除表內數據怎么辦”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!