自己封装了一个 psycopg2 的 execute 方法:
def execute(self, sql, params=None):
cursor.execute(sql, params)
# return
# return cursor.rowcount
return cursor.fetchone()[0] # return last_insert_row_id !!!
这样就能使用类似这样的 insert in () values () returning id 的 SQL 语句来返回刚刚插入数据的 ID
然后问题就来了,要是 update 数据的时候没有写 returning id 这样的有返回的句子,那么断然会报 ProgrammingError: no results to fetch
然而这个 execute 是 insert update delete 都会用到的啊,难道要 insert 搞一个 insert method ? update 单独来个 update method ?这样?
很不优美好不好!
想想我大 MySQL ,那个简单.....
有使用 Postgres 的同学遇到这么蛋疼的问题不?来分享一下,谢谢!