" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報(bào)錯(cuò)

 更新時(shí)間:2023年12月20日 14:09:16   作者:wx65602fa627551  
這篇文章主要為大家介紹了Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報(bào)錯(cuò),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、背景

MySQL數(shù)據(jù)庫(kù)表中有一批重復(fù)的臟數(shù)據(jù),為不影響正常業(yè)務(wù),需要進(jìn)行批量刪除。數(shù)據(jù)示例如下圖所示:

二、SQL批量刪除

首先想到的是編寫(xiě)SQL語(yǔ)句來(lái)批量刪除:刪除身份證號(hào)為51****59且ID不為5的全部數(shù)據(jù)(保留ID為5的那一條數(shù)據(jù))

DELETE 
FROM
    test_table 
WHERE
    id IN ( SELECT id FROM test_table WHERE id_card_no = "51****59" AND id != 5 );

運(yùn)行結(jié)果:

刪除失敗,SQL語(yǔ)句運(yùn)行時(shí)報(bào)錯(cuò)了

鑒于當(dāng)時(shí)實(shí)際情況需要盡快刪除臟數(shù)據(jù),就沒(méi)有在此做過(guò)多的考究,原因和解決詳見(jiàn)第四小節(jié):SQL運(yùn)行問(wèn)題排查

三、Python批量刪除

數(shù)據(jù)準(zhǔn)備
將SQL查詢到的所有需要?jiǎng)h除的數(shù)據(jù)ID保存到txt文件中

SELECT id FROM test_table WHERE id_card_no = "51****59" AND id != 5;             

讀取數(shù)據(jù)ID

def del_from_mysql():
    # 【讀取數(shù)據(jù)ID】
    with open(file="新建文本文檔.txt", mode="r", encoding="utf-8") as f:
        data = f.read()
        f.close()
    ids = data.split("\n")
    print(ids)
if __name__ == "__main__":
    del_from_mysql()

運(yùn)行結(jié)果:

連接數(shù)據(jù)庫(kù)執(zhí)行SQL

這里需要先安裝b并導(dǎo)入pymysql第三方庫(kù)

pip install pymysql

導(dǎo)入

import pymysql
def del_from_mysql(dbinfo):
    # 【讀取數(shù)據(jù)ID】
    with open(file="新建文本文檔.txt", mode="r", encoding="utf-8") as f:
        data = f.read()
        f.close()
    ids = data.split("\n")
    # 【連接數(shù)據(jù)庫(kù)執(zhí)行SQL】
    conn = pymysql.connect(**dbinfo)
    cursor = conn.cursor()
    for i in ids:
        sql = f"delete from test_table where id={i}"
        cursor.execute(sql)
        conn.commit()
    conn.close()
if __name__ == "__main__":
    # 數(shù)據(jù)庫(kù)信息
    db_info = {
        'host': "192.168.1.1",
        'port': 3306,
        'user': "test",
        'passwd': "test",
        'db': "test_",
        'charset': "utf8"
    }
    del_from_mysql(db_info)

運(yùn)行結(jié)果:

可以看到這時(shí)已經(jīng)完成重復(fù)臟數(shù)據(jù)的刪除

四、SQL運(yùn)行問(wèn)題排查

前面使用SQL批量刪除時(shí)遇到了報(bào)錯(cuò):You can't specify target table 'test_table' for update in FROM clause

查閱資料后發(fā)現(xiàn):在Mysql中,delete或者update的where條件中不能包含同一張表的子查詢語(yǔ)句,而在where條件中再加一個(gè)中間表就能解決此問(wèn)題

修改后的SQL語(yǔ)句如下:

DELETE 
FROM
    test_table 
WHERE
    id IN ( SELECT * FROM ( SELECT id FROM test_table WHERE id_card_no = "51****59" AND id != 5 ) t1 );

以上就是MySQL數(shù)據(jù)處理:從SQL批量刪除報(bào)錯(cuò)到Python優(yōu)雅解決的詳細(xì)內(nèi)容,更多關(guān)于Python解決SQL批量刪除報(bào)錯(cuò)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python命令啟動(dòng)Web服務(wù)器實(shí)例詳解

    Python命令啟動(dòng)Web服務(wù)器實(shí)例詳解

    這篇文章主要介紹了Python命令啟動(dòng)Web服務(wù)器實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • python類名和類方法cls修改類變量的值

    python類名和類方法cls修改類變量的值

    這篇文章主要介紹了python類名和類方法cls修改類變量的值,通過(guò)類對(duì)象是無(wú)法修改類變量的值的,本質(zhì)其實(shí)是給類對(duì)象新添加?name?和?age?變量,下文更多的相關(guān)介紹需要的小伙伴可任意參考一下
    2022-04-04
  • python常用內(nèi)置模塊你了解嗎

    python常用內(nèi)置模塊你了解嗎

    這篇文章主要為大家介紹了python的常用內(nèi)置模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python實(shí)現(xiàn)計(jì)算對(duì)象的內(nèi)存大小示例

    Python實(shí)現(xiàn)計(jì)算對(duì)象的內(nèi)存大小示例

    這篇文章主要介紹了Python實(shí)現(xiàn)計(jì)算對(duì)象的內(nèi)存大小,結(jié)合實(shí)例形式分析了Python使用sys.getsizeof與遞歸算法計(jì)算對(duì)象占用內(nèi)存的相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • Python with語(yǔ)句和過(guò)程抽取思想

    Python with語(yǔ)句和過(guò)程抽取思想

    這篇文章主要介紹了Python with語(yǔ)句和過(guò)程抽取思想,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python中正則表達(dá)式妙用之以搜索電子郵件地址為例

    Python中正則表達(dá)式妙用之以搜索電子郵件地址為例

    這篇文章主要給大家介紹了關(guān)于Python中正則表達(dá)式妙用之以搜索電子郵件地址為例的相關(guān)資料,正則表達(dá)式經(jīng)常被用到,而自己總是記不全,匯總一份完整的以備不時(shí)之需,需要的朋友可以參考下
    2024-05-05
  • Python爬取奶茶店數(shù)據(jù)分析哪家最好喝以及性價(jià)比

    Python爬取奶茶店數(shù)據(jù)分析哪家最好喝以及性價(jià)比

    這篇文章主要介紹了用Python告訴你奶茶哪家最好喝性價(jià)比最高,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-09-09
  • 跟老齊學(xué)Python之大話題小函數(shù)(1)

    跟老齊學(xué)Python之大話題小函數(shù)(1)

    今天本講要講什么呢?今天要介紹幾個(gè)python中的小函數(shù),這幾個(gè)函數(shù)都是從函數(shù)式編程借鑒過(guò)來(lái)的,它們就是:filter、map、reduce、lambda、yield 有了它們,最大的好處是程序更簡(jiǎn)潔
    2014-10-10
  • python日志通過(guò)不同的等級(jí)打印不同的顏色(示例代碼)

    python日志通過(guò)不同的等級(jí)打印不同的顏色(示例代碼)

    這篇文章主要介紹了python日志通過(guò)不同的等級(jí)打印不同的顏色,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 20個(gè)Python?random模塊常用函數(shù)的應(yīng)用與代碼示例

    20個(gè)Python?random模塊常用函數(shù)的應(yīng)用與代碼示例

    隨機(jī)數(shù)在計(jì)算機(jī)科學(xué)和數(shù)據(jù)科學(xué)領(lǐng)域中扮演著重要角色,Python的標(biāo)準(zhǔn)庫(kù)中提供了random模塊,用于生成各種隨機(jī)數(shù),本文將深入探討random模塊的各種函數(shù),以及它們的應(yīng)用場(chǎng)景和代碼示例,需要的可以參考下
    2024-03-03

最新評(píng)論

土默特左旗| 临猗县| 贺州市| 孙吴县| 庆城县| 霍州市| 漳浦县| 大田县| 丹东市| 汽车| 平利县| 黎城县| 海淀区| 临澧县| 罗源县| 麦盖提县| 巩留县| 乐东| 麦盖提县| 漳浦县| 衡阳县| 灌云县| 永昌县| 锡林郭勒盟| 凤阳县| 潼关县| 大理市| 西峡县| 西林县| 万载县| 武隆县| 同德县| 延吉市| 蚌埠市| 都兰县| 城固县| 永德县| 盱眙县| 玛曲县| 建宁县| 黄平县|