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
。回答补充道。祝您的项目顺利完成:)