zoukankan      html  css  js  c++  java
  • 一个数据库中数据求差集需求的处理过程

    原始需求: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 

  • 相关阅读:
    moment.js相关知识总结
    git相关使用解释
    .我的第一篇博客
    QT项目配置
    重载->
    内核对象同步
    模式对话框与非模式对话框
    显示与隐式类型转换
    size_t与size_type
    系统级源代码:系统裁剪
  • 原文地址:https://www.cnblogs.com/liyulong1982/p/3095061.html
Copyright © 2011-2022 走看看