zoukankan      html  css  js  c++  java
  • 批量删除数据库相关数据

    目的:删除数据库各个系统his库里的测试soe与故障数据;
    一、sql执行错误:
    执行sql:SELECT FROM SOE WHERE sDevCode = 012400000001
    报错:
    [SQL Server]将 varchar 转换为数据类型 numeric 时出现算术溢出错误。
    原因:查看表设计,sDevCode列的类型为varchar(字符串),
    修改:SELECT 
    FROM SOE WHERE sDevCode = '012400000001' 。
    二、脚本;

    -- coding:UTF-8 --
    
    import os
    import pymssql
    import pprint
    sql_name = [
    qqqqq
    ]
    print('****程序正在启动****')
    os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
    os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
    for SJK in sql_name:
      IP_HIS = SJK[0] #   获取数据库IP
      us_HIS = SJK[1]
      PW_HIS= SJK[2]
      HIS = SJK[3]
      print(HIS)
    conn = pymssql.connect(host=IP_HIS, user=us_HIS, password=PW_HIS, database=HIS)
    cur1 = conn.cursor()
    check_sql1 = "DELETE FROM SOE WHERE sDevCode = '012400000001'"
    cur1.execute(check_sql1)
    cur2 = conn.cursor()
    check_sql2 = "DELETE FROM Fault_Record WHERE LOWER(sLineName) LIKE '%cs%' or sLineName LIKE '%测试%' or sLineName LIKE '%模拟%'"
    cur2.execute(check_sql2)
    conn.commit() conn.close()

    解析:主要在sql上,
    DELETE FROM Fault_Record WHERE LOWER(sLineName) LIKE '%cs%' or sLineName LIKE '%测试%' or sLineName LIKE '%模拟%
    其中,模糊查询用like ,忽略大小写用lower或者upper都可以。

    在代码运行完检查时发现,要删除的数据依然稳如磐石的蹲在数据库里,原来在数据库中执行修改,增删的时候都是需要提交这一步的,而直接在数据库里执行sql,数据库自动保存了,所以用python执行时需要加上conn.commit()来对sql执行的结果进行提交。

  • 相关阅读:
    查找第一个不重复的字符问题
    gops
    关于 Go 中 Map 类型和 Slice 类型的传递
    Go 程序的性能优化及 pprof 的使用
    Go语言标准库_输入/输出
    Linux 终端 Bash 常用快捷键介绍及经验
    蓄水池采样算法(Reservoir Sampling)
    Guice 依赖绑定
    基本动态规划之硬币问题
    程序打包成jar 获取不到工程目录下文件的问题
  • 原文地址:https://www.cnblogs.com/zhao-zhao/p/10283736.html
Copyright © 2011-2022 走看看