Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/SQL/pydobc:获取计数器的if操作的结果?_Python_Sql_Pypyodbc - Fatal编程技术网

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

Python/SQL/pydobc:获取计数器的if操作的结果?,python,sql,pypyodbc,Python,Sql,Pypyodbc,我正在运行下面的代码,以将电子邮件添加到数据库表中(如果它们还不存在)。我希望能够计算添加的电子邮件和已经存在的电子邮件 import pyodbc emails = [# a list of emails] new_count = 0 existed_already_count = 0 for email in emails: cursor.execute(f""" IF NOT EXISTS (

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

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

我尝试在每个循环后检查
游标.description
,但无论项目是否存在,它都返回
None
。有办法做到这一点吗?

这最初是作为评论发布的


查看一下
游标.行数。我不能100%确定如果电子邮件已经存在,它将返回什么值,它应该返回
-1
,尽管根据文档:

查看
游标。行数。不过,我不确定在电子邮件已经存在的情况下,它将返回什么值,因此您需要进行一些测试。参考:似乎是-1表示已经存在,1表示创建时——这正是我所需要的!非常感谢。请随意提出答案,我将接受。:)当然可以我刚才也看到了,如果
.execute()
没有运行,则返回
-1
。回答补充道。祝您的项目顺利完成:)