त्रुटि पोस्टग्रेज से है न कि django से। आप इसे इस प्रकार फिर से लिख सकते हैं:
WITH v_table_name AS
(
SELECT row_number() over (partition by col2 order by col3) AS rn, primary_key
FROM table_name
)
UPDATE table_name set table_name.col1 = v_table_name.rn
FROM v_table_name
WHERE table_name.primary_key = v_table_name.primary_key;
या वैकल्पिक रूप से:
UPDATE table_name set table_name.col1 = v_table_name.rn
FROM
(
SELECT row_number() over (partition by col2 order by col3) AS rn, primary_key
FROM table_name
) AS v_table_name
WHERE table_name.primary_key = v_table_name.primary_key;
यह काम। पोस्टग्रेज-9.6 पर बस इसका परीक्षण किया। यहाँ अद्यतन के लिए वाक्य रचना है (वैकल्पिक सूची से देखें) )
आशा है कि यह मदद करता है।