简体   繁体   English

如何设置Django忽略mysql错误并强制mysql插入记录?

[英]How to set Django to Ignore mysql errors and force mysql to insert a record?

So I am a naive Django developer and want a similar functionality as INSERT IGNORE of mysql in Django. 因此,我是一位天真的Django开发人员,并且想要与Django中mysql的INSERT IGNORE类似的功能。 Is there a way to do that? 有没有办法做到这一点? Right now whenever I try to save a record in my database, It throws (1364, Field doesn't have a default value). 现在,每当我尝试将记录保存到数据库中时,都会引发(1364,Field没有默认值)。 Should there be any change in Django settings or mysql settings? Django设置或mysql设置是否应该有任何变化?

You can execute mySQL command in Django. 您可以在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)    

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM