【问题标题】:Cannot update a varchar with string that includes a dot(.)无法使用包含点 (.) 的字符串更新 varchar
【发布时间】:2022-01-07 04:03:40
【问题描述】:

我在 SQL 中有一个非常奇怪的错误。 我正在尝试使用 python 中的 pyodbc 库更新数据库字段。 查询如下: UPDATE companyies SET primary_domain='vilatec.com' WHERE codi= '1c44f4dd-b54c-4982-9eaa-b1baef92a65f'; 如您所见,vilatec.com 是一个字符串。这实际上在我的数据库上更新,但随后我收到错误:The multi-part identifier 'vilatec.com' could not be found 看起来它没有将 vilatec.com 作为字符串读取,但如果它是参考,但无论如何它都会更新。你建议做什么?有没有办法引用角色。所以它不会捕获错误或者我应该忽略这个异常吗?

连接:

connection = pyodbc.connect(driver=driver, server=server, user=user_db, password=password, database=database)
cur = connection.cursor()

这是代码:

query = """UPDATE companyies SET primary_domain='vilatec.com' WHERE codi= '1c44f4dd-b54c-4982-9eaa-b1baef92a65f';"""
execute_sql(query,cur,connection)

def execute_sql(query,cur,connection):
    cur.execute(query)
    connection.commit()

原来的查询是:

query = """UPDATE companyies SET primary_domain ='{0}' WHERE codi= '{1}';""".format(primary_domain, company_id)

primary_domain 是 'vilatec.com'

【问题讨论】:

  • 你确定你没有忘记引号吗? (')。错误是“找到”还是“绑定”?
  • 嗨!是的,我正在打印查询以确保它有单引号。由于答案是西班牙语,我无法告诉您它是否显示找到或绑定。我写了发现,因为这是我在互联网上的大多数问题中看到的。如果您想要文字错误是: El identificador formado por varias partes 'vilatec.com' no se pudo enlazar。 4104
  • 您使用什么风格的 SQL? SQL 服务器? MySQL?
  • 我正在使用 SQL 服务器
  • 您可以编辑您的帖子以包含用于重现错误的代码吗?

标签: python sql pyodbc


【解决方案1】:

我以前也遇到过 & 的问题,我就是这样解决的:

query = "UPDATE companyies SET primary_domain='vilatec"+"."+"com' WHERE codi= '1c44f4dd-b54c-4982-9eaa-b1baef92a65f';"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-09
    • 2012-05-07
    • 1970-01-01
    • 2016-11-20
    • 2017-11-16
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多