一個資料庫中資料求差集需求的處理過程

來源:互聯網
上載者:User

原始需求:db 1中有一批記錄,要求如果記錄在db 2 和 db 3中不存在,刪除db 1中的記錄

解決步驟:

     1. 執行指令碼,從DB中匯出id

rm ./id.txt
i=0
while(($i<100))
do
mysql -hxxx -uxxx -pxxx dbname --skip-column-names --default-character-set=utf8 -se "select id from t_xxx wherexxx" >>./id.txt;
i=$(($i+1))
done

2. 合并id

cat db2.txt >> merge.txt

cat db3.txt>> merge.txt

cat merge.txt | sort| uniq >> merge2.txt

3. 求差集,注意這句的意思,後面的檔案中的id,去掉前面檔案中存在的id

grep -F -v -f merge2.txt db1.txt >> result_delete.txt

4. 通過編輯工具把 result_delete.txt中的id變成sql用;和換行分開

insert into t_xxx (c_id) values ('xxxx1111ffff');
insert into t_xxx(c_id) values ('xxxx1111gggg');

執行sql,搞定

mysql -h10.6.207.60 -uuser_qqlive -pqqlive d_v_idx --skip-column-names --default-character-set=utf8 < test.sql 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.