如何快速delete資料

2022-05-05 22:30:18 字數 1339 閱讀 9003

苦於qa賬號,木有drop,truncate許可權,同步資料要挨個delete表裡邊的資料,就寫了個指令碼,迴圈刪除某個目標庫的所有表裡邊的資料。

先在information_schema的庫裡邊,通過tables的表(注意此處是大寫,後邊有些必須是大寫,自己可以去了解下這個資料庫的作用)去獲取目標資料庫中包涵那些表,然後通過迴圈逐個delete表中的資料,然後就可以同步資料了。

同步資料的時候需要注意:很多都是通過id自增列進行表連線的,但是如果新插入一列(不帶id),id會隨著增長,所以insert的時候,要把id帶上,通過mysqldump把資料匯出來,然後整個insert到目標庫。

#!/bin/bash

host="

你的資料庫host

"user="

你的資料庫密碼

"pwd="

beta庫的密碼

"constr="

mysql -h$host -u$user -p$pwd --database=information_schema

"#$constr -e "

use information_schema;

"constr2="

mysql -h$host -u$user -p$pwd --database=$1

"lista=$($constr -e "

select table_name from tables where table_schema='$1';")

echo

"starting.................

"for i in

$(echo $lista)

doif [[ $i == "

table_name

"]];then

continue

else

echo

"deleting the data of $i

"$constr2 -e "

delete from $i"fi

done

echo

"ending....................

"

簡單說下drop,delete,truncate。

drop:就是直接乾掉,一下子就木有了,表結構和資料都木有了,如果需要表,還需要自己crete,很快。

delete:只運算元據,逐行刪除,而且自增的id也不會消除,資料很多時很慢,但是delete的優點是可以根據某一條件進行刪除。

truncate:直接乾掉,並自動重新建表,資料都( _ )/~~拜拜了。

可以多了解了解mysql的infromation_schema和performance_schema庫的作用。

資料刪除 delete

資料刪除 在刪除的時候需要詢問是否真的需要刪除?同時在之後的專案中,刪除往往不是真的刪除,而是做刪除標記 語法 delete from 表名 where 條件 delete from teacher 刪除指定的人員資訊 delete from teacher where id 26 使用delete...

PostgreSQL 中如何delete重複資料

時常有這樣的case db例項執行一段時間後,發現需要給1個table中的某 些 欄位加unique 約束,但建立unique constraints 或 index 時,報出 detail key col value is duplicated 此時就需要先按照一定邏輯將重複資料僅保留1條,將冗餘...

恢復oracle資料delete的資料

1.flashback query 閃回到15分鐘前 select from orders as of timestamp systimestamp interval 15 minute where 這裡可以使用day second month替換minute,例如 select from orde...