在 SQLAlchemy 中执行 INSERT ... ON DUPLICATE KEY UPDATE
SQLAlchemy 提供了一种简洁的方法来执行 INSERT ... ON DUPLICATE KEY UPDATE 语句。
On SQL 语句中的 DUPLICATE KEY UPDATE
要在生成的 SQL 中直接包含 ON DUPLICATE KEY UPDATE 子句,可以使用 @compiles 装饰器。可以制作一个可编译的函数来将所需的字符串附加到 INSERT 语句中。
在 ORM 内
虽然 SQLAlchemy 本身并不支持其 ORM 中的 ON DUPLICATE KEY UPDATE ,它提供了 merge() 函数。此函数比较对象的主键值以确定是否应执行 UPDATE 或 INSERT。但是,merge() 仅限于主键。
非主键的替代方法
要使用非主键实现 ON DUPLICATE KEY UPDATE 功能,需要自定义可以创建类似于 Django 的 get_or_create() 的函数。此函数检查数据库中是否存在实例并返回找到的实例,如果不存在则创建一个新实例。
以上是如何在 SQLAlchemy 中有效地执行 INSERT ... ON DUPLICATE KEY UPDATE?的详细内容。更多信息请关注PHP中文网其他相关文章!