gpt4 book ai didi

sql - Django:将自定义原始 SQL 插入与 executemany 和 MySQL 结合使用

转载 作者:可可西里 更新时间:2023-11-01 06:39:12 25 4
gpt4 key购买 nike

我需要将大量数据上传到 MySQL 数据库。对于大多数模型,我使用 django 的 ORM,但我的一个模型将有数十亿(!)个实例,我想优化它的插入操作。

我似乎无法找到使 executemany() 工作的方法,并且在谷歌搜索后似乎几乎没有示例。

我正在寻找正确的 sql 语法 + 正确的命令语法 + 正确的值数据结构来支持以下 sql 语句的 executemany 命令:

INSERT INTO `some_table` (`int_column1`, `float_column2`, `string_column3`, `datetime_column4`) VALUES (%d, %f, %s, %s)

是的,我明确说明了 id (int_column1) 以提高效率。

一个简短的示例代码会很棒

最佳答案

这是一个实际使用 executemany() 的解决方案!

基本上就是例子中的想法here将工作。

但请注意,在 Django 中,您需要使用 %s 占位符而不是问号。

此外,您还需要管理您的交易。我不会在这里深入讨论,因为有大量可用的文档。

    from django.db import connection,transaction
cursor = connection.cursor()



query = ''' INSERT INTO table_name
(var1,var2,var3)
VALUES (%s,%s,%s) '''


query_list = build_query_list()

# here build_query_list() represents some function to populate
# the list with multiple records
# in the tuple format (value1, value2, value3).


cursor.executemany(query, query_list)

transaction.commit()

关于sql - Django:将自定义原始 SQL 插入与 executemany 和 MySQL 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4298278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com