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