PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

क्या पोस्टग्रेज में कॉलम के प्राकृतिक क्रम को बदलना संभव है?

आप वास्तव में सीधे कॉलम क्रम को बदल सकते हैं, लेकिन मैं शायद ही इसकी अनुशंसा करता हूं, और यदि आप इसे करने का निर्णय लेते हैं तो आपको बहुत सावधान रहना चाहिए।

उदा.

# CREATE TABLE test (a int, b int, c int);
# INSERT INTO test VALUES (1,2,3);
# SELECT * FROM test;
 a | b | c 
---+---+---
 1 | 2 | 3
(1 row)

अब ट्रिकी बिट के लिए, आपको पोस्टग्रेज़ उपयोगकर्ता का उपयोग करके अपने डेटाबेस से कनेक्ट करने की आवश्यकता है ताकि आप सिस्टम टेबल को संशोधित कर सकें।

# SELECT relname, relfilenode FROM pg_class WHERE relname='test';
 relname | relfilenode 
---------+-------------
 test_t  |       27666
(1 row)

# SELECT attrelid, attname, attnum FROM pg_attribute WHERE attrelid=27666;
 attrelid | attname  | attnum 
----------+----------+--------
    27666 | tableoid |     -7
    27666 | cmax     |     -6
    27666 | xmax     |     -5
    27666 | cmin     |     -4
    27666 | xmin     |     -3
    27666 | ctid     |     -1
    27666 | b        |      1
    27666 | a        |      2
    27666 | c        |      3
(9 rows)

attnum एक अद्वितीय स्तंभ है, इसलिए जब आप स्तंभ संख्याओं को इस प्रकार संशोधित कर रहे हों तो आपको एक अस्थायी मान का उपयोग करना होगा:

# UPDATE pg_attribute SET attnum=4 WHERE attname='a' AND attrelid=27666;
UPDATE 1
# UPDATE pg_attribute SET attnum=1 WHERE attname='b' AND attrelid=27666;
UPDATE 1
# UPDATE pg_attribute SET attnum=2 WHERE attname='a' AND attrelid=27666;
UPDATE 1

# SELECT * FROM test;
 b | a | c 
---+---+---
 1 | 2 | 3
(1 row)

दोबारा, क्योंकि यह डेटाबेस सिस्टम टेबल के साथ खेल रहा है, अगर आपको लगता है कि आपको वास्तव में ऐसा करने की ज़रूरत है तो अत्यधिक सावधानी बरतें।

यह पोस्टग्रेज 8.3 के रूप में काम कर रहा है, पूर्व संस्करणों के साथ, आपका माइलेज भिन्न हो सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.lang.ClassNotFoundException:org.postgresql.Driver

  2. PostgreSQL क्वेरी में वेरिएबल कैसे घोषित करें

  3. PostgreSQL में 2 तिथियों के बीच कार्य घंटों की गणना करें

  4. पोस्टग्रेज में कॉलम को कई पंक्तियों में विभाजित करें

  5. PostgreSQL डेटाबेस में रिमोट एक्सेस की अनुमति कैसे दें