0
因此,我是一个天真的Django开发人员,并且希望获得与Django中的INSERT IGNORE相似的功能。有没有办法做到这一点?现在每当我尝试在我的数据库中保存一条记录时,它会抛出(1364,Field没有默认值)。 Django设置或mysql设置中是否应该有变化?如何设置Django忽略mysql错误并强制mysql插入记录?
因此,我是一个天真的Django开发人员,并且希望获得与Django中的INSERT IGNORE相似的功能。有没有办法做到这一点?现在每当我尝试在我的数据库中保存一条记录时,它会抛出(1364,Field没有默认值)。 Django设置或mysql设置中是否应该有变化?如何设置Django忽略mysql错误并强制mysql插入记录?
您可以在Django中执行mySQL命令。
create_fields = ['f1', 'f2', 'f3']
values = [
(1, 2, 3),
(4, 5, 6),
(5, 3, 8)
]
db_table = self.model._meta.db_table
values_sql = []
values_sql.append("(%s)" % (','.join([ " %s " for i in range(len(create_fields))]),)) # correct format
base_sql = "INSERT IGNORE INTO %s (%s) VALUES " % (db_table, ",".join(create_fields))
sql = """%s %s""" % (base_sql, ", ".join(values_sql))
cursor.executemany(sql, values)
有没有办法做到这一点,而不是写手工查询。 – Vamsi