DjangoでBulk Insert
cursorのexecutemanyでbulk insertになった
mysql-pythonでしか試していない
models.py
from django.db import models class Book(models.Model): name = models.CharField(max_length=255) price = models.IntegerField() published = models.DateTimeField() featured = models.BooleanField()
cursor = connection.cursor()
sql = """INSERT INTO apps_book (name, price, published, featured)
VALUES (%s, %s, %s, %s)"""
cursor.executemany(sql,
[
("Python プロフェッショナルプログラミング", 2940, datetime.strptime("2012/3/26", "%Y/%m/%d"), True),
("エキスパートPythonプログラミング", 3780, datetime.strptime("2010/5/28", "%Y/%m/%d"), True),
("Clean Coder プロフェッショナルプログラマへの道", 2100, datetime.strptime("2012/1/27", "%Y/%m/%d"), True)
] )
mysqlのログを出力するようにしておけば、実行されたsqlが確認できる
INSERT INTO apps_book (name, price, published, featured)
VALUES
('Python プロフェッショナルプログラミング', 2940, '2012-03-26 00:00:00', 1),
('エキスパートPythonプログラミング', 3780, '2010-05-28 00:00:00', 1),
('Clean Coder プロフェッショナルプログラマへの道', 2100, '2012-01-27 00:00:00', 1)
余談
大阪に引っ越してから、在宅で仕事を始めて、1〜2週間たったころ
なんでもいいからその日知ったこと、学んだことを、365日連続でブログに書こうと決めて、今日でちょうど365日
ほとんどの日はメモ書き程度のしょぼいエントリしか書けてないけど、とりあえずやろうと決めたことは達成できたのでよしとしたい