微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python/SQL/pydobc:获取计数器的 if 操作结果?

如何解决Python/SQL/pydobc:获取计数器的 if 操作结果?

我正在运行以下代码以将电子邮件添加数据库表(如果它们尚不存在)。我希望能够计算添加的电子邮件和已经存在的电子邮件

import pyodbc
emails = [# a list of emails]
new_count = 0
existed_already_count = 0
for email in emails:
        cursor.execute(f"""
            IF NOT EXISTS (
                SELECT * 
                FROM TableName
                WHERE email = '{email}'
            )
            BEGIN
               INSERT INTO TableName(email)
               VALUES ('{email}')
            END
        """)
        # new_count OR existed_already_count += 1

我尝试在每次循环后检查 cursor.description,但无论该项是否存在,它都会返回 None。有没有办法做到这一点?

解决方法

这最初是作为评论发布的。

看看cursor.rowcount。我不是 100% 确定在电子邮件已经存在的情况下它将返回什么值,它应该返回 -1,但根据文档:https://www.python.org/dev/peps/pep-0249/#rowcount

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。