小编mmo*_*udd的帖子

MySQL INSERT ...使用django 1.4进行DUPLICATE KEY UPDATE批量插入

我有问题搞清楚MySQL INSERT ...用django 1.4进行DUPLICATE KEY UPDATE.

我尝试插入记录的表有一个2列(复合)唯一键.我收到的记录来自第三方来源,除了制作唯一键集的字段外,值会随时间变化.我一次收到1~5k的记录,需要

目前我正在使用Model.objects.bulk_create进行批量插入,性能非常惊人,因为无论记录集有多大,它通常会发出一个查询.但是,由于我的记录可能会在第三方结束时随时间发生变化,因此我需要在记录集上执行MySQL INSERT ... ON DUPLICATE KEY UPDATE查询.

我打算编写原始SQL语句并使用类似的方式执行:

sql = "MySQL INSERT ... ON DUPLICATE KEY UPDATE"

raw_insert(sql)

def raw_insert(sql):
    from django.db import connection, transaction
    cursor = connection.cursor()

    # Data modifying operation - commit required
    cursor.execute(sql)
    transaction.commit_unless_managed()

    return 1
Run Code Online (Sandbox Code Playgroud)

想知道我的问题是否有更好的解决方案.另外,我如何清理原始插入的字段值?

python mysql django

3
推荐指数
1
解决办法
3536
查看次数

标签 统计

django ×1

mysql ×1

python ×1