PostgreSQL ALTER TABLE: कॉलम जोड़ें और नाम बदलें

⚡ स्मार्ट सारांश

PostgreSQL ALTER TABLE कमांड किसी मौजूदा टेबल की संरचना को बदल देता है, जिससे आप कॉलम जोड़ या हटा सकते हैं, किसी कॉलम या पूरी टेबल का नाम बदल सकते हैं, डिफ़ॉल्ट मान सेट कर सकते हैं और ऑब्जेक्ट को दोबारा बनाए बिना चेक कंस्ट्रेंट संलग्न कर सकते हैं।

  • 🧱 सिंटेक्स: ALTER TABLE table-name क्रिया प्रत्येक कथन में एक संरचनात्मक परिवर्तन करती है।
  • कॉलम जोड़ें: ADD column-name data-type कमांड टेबल में एक नया कॉलम जोड़ता है।
  • नाम बदलें: कॉलम का नाम या टेबल का नाम बदलने के लिए RENAME COLUMN और RENAME TO कमांड का उपयोग किया जाता है।
  • ⚙️ डिफ़ॉल्ट मान: ALTER COLUMN SET DEFAULT भविष्य में INSERT की जाने वाली पंक्तियों के लिए एक मान प्रदान करता है।
  • बाधा की जाँच करें: ADD CHECK नए डेटा को मान्य करता है और नियम का पालन न करने वाले मानों को अस्वीकार करता है।
  • 🤖 एआई माइग्रेशन: एआई सहायक ALTER TABLE स्क्रिप्ट तैयार करते हैं और सुरक्षित तैनाती के लिए उनकी समीक्षा करते हैं।

PostgreSQL तालिका में परिवर्तन

ALTER TABLE क्या है? PostgreSQL?

RSI तालिका में परिवर्तन इस कमांड का उपयोग किसी संरचना को बदलने के लिए किया जाता है। PostgreSQL टेबल। यह वह कमांड है जिसका उपयोग टेबल के कॉलम या टेबल के नाम को ड्रॉप किए बिना बदलने के लिए किया जाता है।ping और वस्तु का पुनर्निर्माण करना।

वाक्य - विन्यास

यहाँ इसका वाक्यविन्यास है PostgreSQL ALTER TABLE आदेश:

ALTER TABLE table-name action;

टेबल-नाम पैरामीटर उस टेबल का नाम है जिसे आपको बदलना है। एक्शन पैरामीटर वह क्रिया है जिसे आपको करना है, जैसे कि किसी कॉलम का नाम बदलना या किसी कॉलम के डेटा प्रकार को बदलना।

विवरण

ALTER TABLE कमांड किसी मौजूदा टेबल की परिभाषा को बदलता है। यह निम्नलिखित सबफ़ॉर्म लेता है:

  • कॉलम जोड़ेंयह कमांड टेबल में एक नया कॉलम जोड़ने के लिए CREATE TABLE कमांड के समान सिंटैक्स का उपयोग करता है।
  • ड्रॉप कॉलम: ड्रॉप के लिएping एक टेबल कॉलम। कॉलम पर लगाए गए प्रतिबंध और इंडेक्स भी हटा दिए जाएंगे।
  • डिफ़ॉल्ट सेट/ड्रॉप करें: इसका उपयोग किसी कॉलम के लिए डिफ़ॉल्ट मान सेट करने या हटाने के लिए किया जाता है। यह परिवर्तन केवल बाद के कॉलमों पर लागू होता है। INSERT कथन.
  • सेट/ड्रॉप शून्य नहीं: यह निर्धारित करता है कि कोई कॉलम नल मानों को स्वीकार करेगा या नहीं।
  • सेट सांख्यिकी: ANALYZE ऑपरेशन के लिए प्रत्येक कॉलम के लिए सांख्यिकी-संग्रह लक्ष्य निर्धारित करने के लिए।
  • स्टोरेज सेट करें: किसी कॉलम के लिए संग्रहण का तरीका निर्धारित करने के लिए, चाहे वह इनलाइन हो या पूरक तालिका में।
  • बिना ओआईडी के सेट करेंइसका उपयोग तालिका के पुराने OID कॉलम को हटाने के लिए किया जाता है।
  • नाम बदलें: तालिका नाम या स्तंभ नाम बदलने के लिए.
  • तालिका_बाधा जोड़ेंइसका उपयोग किसी तालिका में नया प्रतिबंध जोड़ने के लिए किया जाता है। यह उसी सिंटैक्स का उपयोग करता है जैसा कि टेबल बना आदेश।
  • ड्रॉप बाधा: बूंद के लिए प्रयुक्तping एक टेबल बाधा।
  • मालिककिसी टेबल, सीक्वेंस, इंडेक्स या व्यू के मालिक को किसी विशिष्ट उपयोगकर्ता में बदलने के लिए।
  • क्लस्टर: भविष्य में क्लस्टर संचालन के लिए उपयोग की जाने वाली तालिका को चिह्नित करने के लिए।

कॉलम को संशोधित करना

किसी कॉलम को कई तरीकों से संशोधित किया जा सकता है। ये संशोधन ALTER TABLE कमांड का उपयोग करके किए जाते हैं। आइए नीचे इन पर चर्चा करें।

नया कॉलम जोड़ना

किसी कॉलम में नया कॉलम जोड़ने के लिए PostgreSQL तालिका में, ALTER TABLE कमांड का प्रयोग निम्नलिखित सिंटैक्स के साथ किया जाता है:

ALTER TABLE table-name
  ADD new-column-name column-definition;

टेबल का नाम उस टेबल का नाम है जिसे संशोधित किया जाना है। नए कॉलम का नाम उस नए कॉलम का नाम है जिसे जोड़ा जाना है। कॉलम की परिभाषा वह कॉलम है जिसे संशोधित किया जाना है। डाटा प्रकार नए कॉलम का। नीचे दी गई पुस्तक तालिका देखें:

PostgreSQL ALTER TABLE उदाहरण

इस टेबल में दो कॉलम हैं, id और name। हमें टेबल में एक नया कॉलम जोड़ना है और उसे author नाम देना है। बस निम्नलिखित कमांड चलाएँ:

ALTER TABLE Book
  ADD author VARCHAR(50);

उपरोक्त आदेश चलाने के बाद, पुस्तक तालिका अब निम्नानुसार है:

PostgreSQL ALTER TABLE उदाहरण

नया कॉलम सफलतापूर्वक जोड़ दिया गया.

तालिका कॉलम का नाम बदलना

हम कॉलम का नाम बदलने के लिए ALTER TABLE कमांड का उपयोग कर सकते हैं। इस मामले में, कमांड का उपयोग निम्नलिखित सिंटैक्स के साथ किया जाता है:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

टेबल का नाम उस टेबल का नाम है जिसके कॉलम का नाम बदलना है। पुराना नाम कॉलम का वर्तमान नाम है, और नया नाम कॉलम का नया नाम है। नीचे दी गई बुक टेबल पर विचार करें:

किताब:

PostgreSQL ALTER TABLE उदाहरण

हमें author कॉलम का नाम बदलकर book_author करना होगा। इसके लिए यह कमांड है:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

कमांड चलाने के बाद, हम तालिका की संरचना देख सकते हैं:

PostgreSQL ALTER TABLE उदाहरण

स्तंभ का नाम सफलतापूर्वक बदल दिया गया.

किसी कॉलम के लिए डिफ़ॉल्ट मान सेट करना

हम किसी कॉलम के लिए डिफ़ॉल्ट मान सेट कर सकते हैं ताकि INSERT ऑपरेशन के दौरान उस कॉलम के लिए मान निर्दिष्ट न करने पर भी डिफ़ॉल्ट मान का उपयोग किया जा सके। इस स्थिति में, ALTER TABLE कमांड का उपयोग निम्न सिंटैक्स के साथ किया जा सकता है:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

टेबल का नाम उस टेबल का नाम है जिसके कॉलम में बदलाव करना है। कॉलम का नाम उस कॉलम का नाम है जिसका डिफ़ॉल्ट मान सेट करना है, और मान उस कॉलम का डिफ़ॉल्ट मान है। नीचे दी गई बुक टेबल पर विचार करें:

PostgreSQL ALTER TABLE उदाहरण

हमें book_author कॉलम के लिए एक डिफ़ॉल्ट मान सेट करना होगा। हम निम्न कमांड चला सकते हैं:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

अब, आइए तालिका में एक पंक्ति डालें:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

ध्यान दें कि हमने केवल दो कॉलम, आईडी और नाम के लिए मान डाले हैं। हालाँकि, पुस्तक_लेखक कॉलम के लिए डिफ़ॉल्ट मान का उपयोग किया गया है:

PostgreSQL ALTER TABLE उदाहरण

चेक बाधा जोड़ना

चेक कंस्ट्रेन्ट उन रिकॉर्ड्स को मान्य करने में मदद करता है जिन्हें किसी टेबल में डाला जा रहा है। हम ALTER TABLE कमांड को ADD CHECK स्टेटमेंट के साथ जोड़कर ऐसा कर सकते हैं। सिंटैक्स:

ALTER TABLE table-name ADD CHECK expression;

टेबल का नाम उस टेबल का नाम है जिसमें बदलाव करना है, और एक्सप्रेशन वह प्रतिबंध है जिसे टेबल कॉलम पर लागू करना है। आइए बुक टेबल के बुक_ऑथर कॉलम को इस प्रकार संशोधित करें कि यह केवल निकोलस और सैमुअल मानों को ही स्वीकार करे:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

अब, आइए बुक तालिका के book_author कॉलम में निकोलस या सैमुअल के अलावा कोई अन्य मान डालने का प्रयास करें:

INSERT INTO Book
VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

यह कथन निम्नलिखित त्रुटि लौटाएगा:

PostgreSQL ALTER TABLE उदाहरण

सम्मिलित ऑपरेशन विफल हो गया क्योंकि हमने जाँच प्रतिबंध का उल्लंघन किया था।

तालिका का नाम बदलना

तालिका का नाम बदलने के लिए ALTER TABLE कमांड का सिंटैक्स इस प्रकार है:

ALTER TABLE table-name
  RENAME TO new-table-name;

टेबल का नाम टेबल का वर्तमान नाम है, और नया नाम टेबल को दिया जाने वाला नया नाम है। उदाहरण के लिए, आइए बुक टेबल का नाम बदलकर बुक्स कर दें:

ALTER TABLE Book
  RENAME TO Books;

pgAdmin का उपयोग करना

अब तक हमने SQL शेल से क्रियाएं चलाई हैं। अब देखते हैं कि pgAdmin का उपयोग करके इन्हीं क्रियाओं को दृश्य रूप से कैसे निष्पादित किया जा सकता है।

नया कॉलम जोड़ना

चरण 1) अपने pgAdmin खाते में लॉगिन करें.

चरण 2)

  1. बाईं ओर स्थित नेविगेशन बार से, डेटाबेस पर क्लिक करें।
  2. डेमो पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 3) क्वेरी संपादक में क्वेरी टाइप करें:

ALTER TABLE Book
  ADD author VARCHAR(50);

चरण 4) निष्पादित करें बटन पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 5) यह जाँचने के लिए कि क्या कॉलम जोड़ा गया है, निम्नलिखित करें:

  1. बाएं नेविगेशन से डेटाबेस पर क्लिक करें।
  2. डेमो विस्तृत करें.
  3. स्कीमा का विस्तार करें.
  4. सार्वजनिक का विस्तार करें.
  5. तालिकाएँ विस्तृत करें.
  6. पुस्तक का विस्तार करें.
  7. कॉलम विस्तृत करें.

PostgreSQL ALTER TABLE उदाहरण

स्तंभ को जोड़ा जाना चाहिए था, जैसा कि नीचे दिखाया गया है:

PostgreSQL ALTER TABLE उदाहरण

तालिका कॉलम का नाम बदलना

चरण 1) अपने pgAdmin खाते में लॉगिन करें.

चरण 2)

  1. बाईं ओर स्थित नेविगेशन बार से, डेटाबेस पर क्लिक करें।
  2. डेमो पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 3) क्वेरी संपादक में क्वेरी टाइप करें:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

चरण 4) निष्पादित करें बटन पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 5) यह जांचने के लिए कि परिवर्तन सफल रहा या नहीं, पुस्तक तालिका के स्तंभों को पहले की तरह विस्तारित करें:

PostgreSQL ALTER TABLE उदाहरण

अब कॉलम इस प्रकार होने चाहिए:

PostgreSQL ALTER TABLE उदाहरण

स्तंभ सफलतापूर्वक बदला गया.

किसी कॉलम के लिए डिफ़ॉल्ट मान सेट करना

चरण 1) अपने pgAdmin खाते में लॉगिन करें.

चरण 2)

  1. बाईं ओर स्थित नेविगेशन बार से, डेटाबेस पर क्लिक करें।
  2. डेमो पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 3) क्वेरी संपादक में क्वेरी टाइप करें:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

चरण 4) निष्पादित करें बटन पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 5) परीक्षण करने के लिए, क्वेरी एडिटर में निम्न कमांड चलाएँ:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

चरण 6) अब, हम तालिका को क्वेरी करके जाँच सकते हैं कि book_author कॉलम में डिफ़ॉल्ट मान डाला गया था या नहीं:

PostgreSQL ALTER TABLE उदाहरण

चेक बाधा जोड़ना

चरण 1) अपने pgAdmin खाते में लॉगिन करें.

चरण 2)

  1. बाईं ओर स्थित नेविगेशन बार से, डेटाबेस पर क्लिक करें।
  2. डेमो पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 3) क्वेरी संपादक में क्वेरी टाइप करें:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

चरण 4) निष्पादित करें बटन पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 5) इसे जांचने के लिए, क्वेरी एडिटर में निम्नलिखित क्वेरी टाइप करें और एक्जीक्यूट बटन पर क्लिक करें:

INSERT INTO Book
VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

PostgreSQL ALTER TABLE उदाहरण

यह निम्नलिखित लौटाएगा:

PostgreSQL ALTER TABLE उदाहरण

तालिका का नाम बदलना

चरण 1) अपने pgAdmin खाते में लॉगिन करें.

चरण 2)

  1. बाईं ओर स्थित नेविगेशन बार से, डेटाबेस पर क्लिक करें।
  2. डेमो पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 3) क्वेरी संपादक में क्वेरी टाइप करें:

ALTER TABLE Book
  RENAME TO Books;

चरण 4) निष्पादित करें बटन पर क्लिक करें.

PostgreSQL ALTER TABLE उदाहरण

चरण 5) यह जांचने के लिए कि टेबल का नाम बदला गया है या नहीं, डेटाबेस > डेमो > स्कीमा > पब्लिक > टेबल्स का विस्तार करें:

PostgreSQL ALTER TABLE उदाहरण

तालिका का नाम सफलतापूर्वक बदला गया.

इस ट्यूटोरियल में प्रयुक्त डेटाबेस डाउनलोड करें

अक्सर पूछे जाने वाले प्रश्न

ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type कमांड का उपयोग करें। मानों को परिवर्तित करने के लिए USING क्लॉज़ जोड़ें, उदाहरण के लिए ALTER COLUMN price TYPE numeric USING price::numeric। PostgreSQL यह कॉलम को फिर से लिखता है और जांचता है कि मौजूदा डेटा नए प्रकार के अनुरूप है या नहीं।

केवल तभी जब डिफ़ॉल्ट अस्थिर हो। PostgreSQL 11. एक स्थिर डिफ़ॉल्ट मान के साथ कॉलम जोड़ने से पंक्तियों को पुनः लिखे बिना कैटलॉग तुरंत अपडेट हो जाता है। एक ऐसा डिफ़ॉल्ट मान जो किसी फ़ंक्शन को कॉल करता है, वह अभी भी पूरी तालिका को पुनः लिखने और एक मज़बूत लॉक लगाने के लिए बाध्य करता है।

नहीं. PostgreSQL किसी मौजूदा बाधा को बदला नहीं जा सकता। DROP CONSTRAINT कमांड का उपयोग करके मौजूदा बाधा को हटाएँ, फिर ADD CONSTRAINT कमांड का उपयोग करके संशोधित बाधा को जोड़ें। दोनों स्टेटमेंट को एक ट्रांज़ैक्शन में रैप करें ताकि टेबल में नियम हमेशा मौजूद रहे।

अल्पविराम से अलग करके कई क्रियाएँ सूचीबद्ध करें: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL यह एक ही बार में सभी बदलावों को लागू करता है, जो तेज़ होता है और तालिका को एकरूप बनाए रखता है।

ALTER TABLE table_name ADD PRIMARY KEY (column) या ADD CONSTRAINT pk_name PRIMARY KEY (column) कमांड का उपयोग करें। कॉलम में अद्वितीय, गैर-शून्य मान होने चाहिए; PostgreSQL कुंजी बनाते समय यह स्वचालित रूप से एक सहायक अद्वितीय अनुक्रमणिका का निर्माण करता है।

RENAME कमांड केवल सिस्टम कैटलॉग में टेबल का नाम अपडेट करता है। स्टोर की गई पंक्तियाँ, इंडेक्स और कंस्ट्रेंट यथावत रहते हैं और उन पर कोई असर नहीं पड़ता। पुराने नाम का संदर्भ देने वाले व्यू या फ़ंक्शन को बाद में भी अपडेट करने की आवश्यकता हो सकती है।

कृत्रिम बुद्धिमत्ता सहायक, बताए गए बदलाव के आधार पर ALTER TABLE स्क्रिप्ट तैयार करते हैं, ADD, RENAME और constraint चरणों को सही क्रम में लगाते हैं, और टाइप कास्ट के लिए USING क्लॉज़ जोड़ते हैं। वे उन ऑपरेशनों को भी चिह्नित करते हैं जो बड़ी तालिकाओं को पुनर्लिखित करते हैं या भारी लॉक रखते हैं।

हाँ। एक एआई कोपायलट माइग्रेशन की समीक्षा करता है, लॉकिंग या पूर्ण-टेबल पुनर्लेखन के बारे में चेतावनी देता है, बैचिंग या समवर्ती इंडेक्स निर्माण का सुझाव देता है, और रैप की अनुशंसा करता है।ping किसी लेनदेन में परिवर्तन, जिससे स्कीमा अपडेट को तैनात करना अधिक सुरक्षित हो जाता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: