create table test(id varchar );
insert into test values('1');
insert into test values('11');
insert into test values('12');
select * from test
--Result--
id
character varying
--------------------------
1
11
12
आप उपरोक्त तालिका से देख सकते हैं कि मैंने डेटा प्रकार का उपयोग किया है - character varying
id
. के लिए कॉलम। लेकिन यह एक गलती थी क्योंकि मैं हमेशा integers
दे रहा हूं id
. के रूप में . तो varchar
. का उपयोग कर रहे हैं यहाँ एक बुरा अभ्यास है। तो चलिए कॉलम प्रकार को integers
. में बदलने का प्रयास करते हैं ।
ALTER TABLE test ALTER COLUMN id TYPE integer;
लेकिन यह लौट आता है:
इसका मतलब है कि हम केवल डेटा प्रकार नहीं बदल सकते क्योंकि डेटा पहले से ही कॉलम में है। चूंकि डेटा प्रकार का होता है character varying
पोस्टग्रेज इसे पूर्णांक के रूप में उम्मीद नहीं कर सकते हैं, हालांकि हमने केवल पूर्णांक दर्ज किए हैं। तो अब, जैसा कि पोस्टग्रेज़ ने सुझाव दिया था कि हम USING
. का उपयोग कर सकते हैं हमारे डेटा को पूर्णांकों में डालने के लिए व्यंजक।
ALTER TABLE test ALTER COLUMN id TYPE integer USING (id::integer);
यह काम करता है।
तो आपको
. का उपयोग करना चाहिएalter table a.attend alter column terminal TYPE INTEGER USING (terminal::integer) ;