在冲突上做更新

时间:2018-05-10 03:46:47

标签: django postgresql

我想知道是否有针对此的解决方法。我需要将学生余额数据插入表格中。源数据具有student_id,school_id和campus_name的重复值。我在Django中的StudentBalance模型具有Class Meta:

class Meta:
        unique_together = (
            "school",
            "student_id",
            "campus_name"
        )

在网上搜索,发现这个神奇的工具名为ON CONFLICT DO UPDATE。我玩它,使它工作,但有一个问题。余额数据未被更新,因为它不在具有unique_together的类Meta中。我想知道是否有办法更新学生余额列中的数据而不将其添加到Meta类?

谢谢, Ĵ

1 个答案:

答案 0 :(得分:0)

我只需要在ON CONFLICT括号内添加列。我想,只有具有重复数据的列在括号内。

ON CONFLICT (school_system_id, student_id, campus_name ) DO UPDATE 
SET school_system_id = excluded.school_system_id, 
    student_id = excluded.student_id, 
    campus_name = excluded.campus_name,
    balance = excluded.balance