Python SqlAlchemy针对批量升级的重复密钥更新

Python SqlAlchemy针对批量升级的重复密钥更新,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我对SqlAlchemy的重复密钥更新语法感到困惑 我已经试着修改下面链接中的示例,同时也研究了具体的文档 我的代码如下: class GivenName(Base): # ORM table definition __tablename__ = 'given_name' given_company_name = Column(String(255), index=True, primary_key=True) given_company_name_trimmed =

我对SqlAlchemy的重复密钥更新语法感到困惑

我已经试着修改下面链接中的示例,同时也研究了具体的文档

我的代码如下:

class GivenName(Base):
# ORM table definition
    __tablename__ = 'given_name'
    given_company_name = Column(String(255), index=True, primary_key=True)
    given_company_name_trimmed = Column(String(255), index=True)
    given_org_number = Column(String(255))
    given_clean_org_number = Column(BigInteger, index=True, primary_key=True)

# two rows to be inserted in json format
insertion_as_dict = [{'given_clean_org_number': 0.0,
                      'given_company_name': 'staby gårdshotell',
                      'given_company_name_trimmed': 'staby gardshotell',
                      'given_org_number': None},
                     {'given_clean_org_number': 5568978430.0,
                      'given_company_name': 'staccato etg ab',
                      'given_company_name_trimmed': 'staccato etg',
                      'given_org_number': 5568978430.0}]

# insertion statement adapted from the sqlalchemy example in link above
insert_stmt = insert(GivenName).values(insertion_as_dict)

on_duplicate_key_stmt = insert_stmt.on_duplicate_key_update(
    values=insert_stmt.inserted
)
session = session_factory()
session.execute(on_duplicate_key_stmt)
session.close()
由于某些原因,这会产生错误:

(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1")
我不知道我是否在描述中遗漏了一些东西,这些东西似乎只是演示了一个单记录插入。它们显式地设置关键字参数id和数据。这应该与数据库中的列相对应,还是这些api关键字