में Enum के लिए एक पूर्णांक परिवर्तित मैं बहुत की तरह एक कस्टम डेटा प्रकार enum बनाया है। मैं इन integers को उनके संबंधित enum मानों में कनवर्ट करना चाहता हूं।PostgreSQL
मैं यह कैसे कर सकता हूं?
मैं PostgreSQL 8.4 का उपयोग कर रहा हूं।
में Enum के लिए एक पूर्णांक परिवर्तित मैं बहुत की तरह एक कस्टम डेटा प्रकार enum बनाया है। मैं इन integers को उनके संबंधित enum मानों में कनवर्ट करना चाहता हूं।PostgreSQL
मैं यह कैसे कर सकता हूं?
मैं PostgreSQL 8.4 का उपयोग कर रहा हूं।
SELECT (ENUM_RANGE(NULL::bnfunctionstype))[s]
FROM generate_series(1, 5) s
create function bnfunctionstype_from_number(int)
returns bnfunctionstype
immutable strict language sql as
$$
select case ?
when 0 then 'normal'
when 1 then 'library'
when 2 then 'import'
when 3 then 'thunk'
when 4 then 'adjustor_thunk'
else null
end
$$;
मुझे कई enum प्रकारों के लिए ऐसा करने की ज़रूरत है, इसलिए मैं वास्तव में चाहूंगा सभी व्यक्तिगत मूल्यों को दोहराने से बचें और प्रत्येक के लिए एक संग्रहित प्रक्रिया तैयार करें। – BuschnicK
आप इस तरह एक enum है:
SELECT i, (enum_range(NULL::payment_status))[i]
FROM generate_series(1, array_length(enum_range(NULL::payment_status), 1)) i
कौन देता है::
i | enum_range
---+------------
1 | preview
2 | pending
3 | paid
4 | reviewing
5 | confirmed
6 | cancelled
(6 rows)
CREATE TYPE payment_status AS ENUM ('preview', 'pending', 'paid',
'reviewing', 'confirmed', 'cancelled');
आप एक इस तरह वैध मदों की सूची बना सकते हैं
यह बेहद सुरुचिपूर्ण दिखता है - मैं सोमवार को कोशिश करूंगा (जब मैं कार्यालय में वापस आऊंगा) और आपको जवाब के लिए श्रेय देता हूं ... – BuschnicK