PGSQL 查询中的参数传递

Parameter pass in PGSQL query

我试图在我的 class 中调用一个创建函数,它需要携带一个 sql 语句。我需要在该查询中传递一些参数,但我不知道该怎么做。

roster_substitute中的创建函数class

def create(self, cr, uid, values, context=None):
        rec_id=values['id']
        sub_day=values['roster_day']
        ros_time=values['time_slot']

   cr.execute("""UPDATE roster_days_allocation  SET roster_allocation_connection = (SELECT MAX(ra.id) FROM roster_allocation ra, roster_substitution rs
                            WHERE ra.emp_id=rs.sub_employee) 
                      WHERE allocation_start_day = **'sub_day'** AND roster_time_list = **ros_time**""")

return super(roster_substitution, self).create(cr, uid, values, context=context)

如果您使用的是标准 psycopg2 库,那么

cr.execute("""UPDATE roster_days_allocation SET roster_allocation_connection = (SELECT MAX(ra.id) FROM roster_allocation ra, roster_substitution rs
                            WHERE ra.emp_id=rs.sub_employee) 
              WHERE allocation_start_day = %s AND roster_time_list = %s""", (sub_day, ros_time))

psycopg2 documentation