जवाबों:
आपको अपने विचार में एक पंक्ति के रूप में row_number () फ़ंक्शन का उपयोग करने में सक्षम होना चाहिए। यह Postgres 8.4 या उच्चतर के लिए काम करता है।
http://www.postgresql.org/docs/current/static/functions-window.html
SELECT * FROM
( SELECT
ROW_NUMBER() OVER (ORDER BY column_to_sort_by ASC) AS ROW_NUMBER,
Col1, Col2
FROM table_name
) myview_name
यह SQL Server, Oracle, और MySQL सहित अधिकांश डेटाबेस में काम करना चाहिए।
row_number() OVER() AS "id"
बिना भी कर सकते हैं ORDER
row_number
कि प्रभावी रूप से एक यादृच्छिक मूल्य है। आप इस पर निर्भर नहीं रह सकते हैं SELECT
, विशेषकर जब अंतर्निहित डेटा में परिवर्तन होता है।
PostgreSQL के पुराने संस्करणों (<= 8.3) के लिए, यहां एक और समाधान है। इस उदाहरण में, मैं vid
"व्यू आईडी" के लिए एक और कॉलम नाम का उपयोग करता हूं ।
सबसे पहले, एक अनुक्रम बनाएँ। उपयोग करें CYCLE
ताकि यह अनुक्रम के अंत तक पहुंचने की स्थिति में लूप हो जाए।
CREATE SEQUENCE myview_vid_seq CYCLE;
अब, अनुक्रम का उपयोग करने वाला एक दृश्य बनाएं:
CREATE OR REPLACE VIEW myview AS
SELECT nextval('myview_vid_seq'::regclass) AS vid, mytable.*
FROM mytable;