SQL语句使用pyodbc

时间:2017-09-11 13:48:36

标签: sql python-2.7

  

我在应该更新现有服务器的服务器上运行python脚本   table' loading_log'使用ODBC连接。

问题是我的脚本对数据库中的表没有任何影响,即它不会删除记录而不会插入新记录。

与此同时,我没有看到执行后抛出的任何错误。 如果我使用相同的凭据从Desktop运行相同的SQL查询,它可以正常工作。

我的问题: 为什么它在python脚本中不起作用?

这是我的代码的摘录:

curs.execute('''
        delete from loading_log
    ''')

    #
    #record loaded record ids into loading_log table
    #

    #logging.info('insert laoded record id data into loading_log table')
    curs.execute('''
    insert into loading_log (catalog_sample_events_id,ShippingId)
    select top 500
    cs.catalog_sample_events_id,
    cs.shipping_id ShippingId
    from catalog_sample_events cs
    join event_type et on et.event_type_id = cs.event_type_id
    join event_source es on es.event_source_id = cs.event_source_id
    join etl_status esi on esi.etl_status_id = cs.etl_status_id
    where cs.catalog_sample_events_id > ?
    order by cs.catalog_sample_events_id
    ''', max_id)

1 个答案:

答案 0 :(得分:1)

您需要提交交易:

curs.commit()  

或告诉pyodbc使用自动提交模式。有关详细信息,请参阅https://pastebin.com/raw/4xbxJSC5