MySQL में एक कॉलम का नाम बदलें


242

मैं इस SQL ​​अभिव्यक्ति का उपयोग करके MySQL समुदाय सर्वर 5.5.27 में एक कॉलम का नाम बदलने की कोशिश कर रहा हूं:

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

मैंने भी कोशिश की

ALTER TABLE table_name RENAME old_col_name TO new_col_name;

लेकिन यह कहता है:

त्रुटि: उस मैनुअल की जांच करें जो आपके MySQL सर्वर संस्करण से मेल खाती है


जवाबों:


405

निम्नलिखित प्रश्न का उपयोग करें:

ALTER TABLE tableName CHANGE `oldcolname` `newcolname` datatype(length);

RENAMEसमारोह Oracle डेटाबेस में प्रयोग किया जाता है।

ALTER TABLE tableName RENAME COLUMN "oldcolname" TO "newcolname" datatype(length);

MySQL के लिए उपयोग किए जाने वाले बैकटिक्स पर ध्यान दें, जबकि Oracle के सिंटैक्स के लिए दोहरे उद्धरण चिह्नों का उपयोग किया जाता है। यह भी ध्यान दें कि MySQL 8.0 बैकटिक को स्वीकार नहीं कर सकता है। उस स्थिति में, backticks के बिना क्वेरी निष्पादित करें और यह संभवतः काम करेगा।


@ lad2025 ने इसका उल्लेख किया है, लेकिन मुझे लगा कि उसने जो कहा है उसे जोड़ना अच्छा होगा। शुक्रिया @ lad2025!

आप RENAME COLUMNकिसी भी स्तंभ का नाम बदलने के लिए MySQL 8.0 का उपयोग कर सकते हैं, जिसे आपको नाम बदलने की आवश्यकता है।

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

अन्य तालिका सिंटैक्स :

RENAME COLUMN:

  • एक कॉलम नाम बदल सकते हैं, लेकिन इसकी परिभाषा नहीं।

  • अपनी परिभाषा को बदले बिना किसी कॉलम का नाम बदलने के लिए CHANGE की तुलना में अधिक सुविधाजनक है।


2
क्या आपके पास एक ही नाम के साथ कॉलम हो सकते हैं - या इसे निर्दिष्ट करने के लिए डेटाटाइप क्यों करता है?
लीला

5
@Lealo जैसा कि कमांड कहता है, CHANGEएक टेबल और उसके प्रकार पर कॉलम को बदलता है। MYSQL डॉक्स स्थिति Attributes present in the original definition but not specified for the new definition are not carried forward.:। मतलब आपको टेबल की परिभाषाएँ बतानी होंगी या उनका उपयोग उस कॉलम के लिए नहीं किया जाएगा। यदि आप केवल एक कॉलम के newcolname
प्रारूप

2
@ सही आप फिर से सही हो। ओरेकल डॉक्स; In MySQL, the quote character is the backtick. If the SQL mode ANSI_QUOTES is set, double quotes can also be used to quote the identifiers. In Oracle, identifiers are quoted using double quotation marks.अहांड का संपादन किया। मुझे कॉफी की जरूरत है ..
रिज्की फकेल

1
शुक्रिया @Smogen! अजीब है कि। बैकस्टिक्स को MySQL के लिए डिफ़ॉल्ट बोली वर्ण माना जाता है। क्या आप वाकई "इसके बजाय उपयोग नहीं करते हैं `?
रिज़्की फ़ाकेल

2
MySQL ( MYSQL STATUSशो mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper) में, मैं Error 1064 (42000): You have an error in your SQL Syntax;...near 'COLUMN thread_id TO threadId'...क्वेरी के लिए मिलता हूं ALTER TABLE comment RENAME COLUMN thread_id TO threadId;। मैंने भी बैकटिक्स जोड़ने की कोशिश की `। मैंने उपयोग करना समाप्त कर दिया CHANGE
रीड

60

सर्वर संस्करण में: 5.6.34 MySQL सामुदायिक सर्वर

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name data_type;

80
बिल्कुल DROP और ADD का उपयोग न करें। आप ऐसा करने से सभी डेटा खो देंगे
tomazahlin

27

से MySQL 5.7 संदर्भ मैनुअल

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

टेट टबल T1 चेंज अब डाटायप;

उदाहरण के लिए: ग्राहक की पसंद के लिए COLUMN customer_name , customer_street , customercity

और हम बदलना चाहते customercity को customer_city :

alter table customer change customercity customer_city VARCHAR(225);

18

MySQL 8.0 से आप उपयोग कर सकते हैं

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

अन्य तालिका सिंटैक्स :

RENAME COLUMN:

  • एक कॉलम नाम बदल सकते हैं, लेकिन इसकी परिभाषा नहीं।

  • अपनी परिभाषा को बदले बिना किसी कॉलम का नाम बदलने के लिए CHANGE की तुलना में अधिक सुविधाजनक है।

DBFiddle डेमो


4

आप निम्नलिखित कोड का उपयोग कर सकते हैं:

ALTER TABLE `dbName`.`tableName` CHANGE COLUMN `old_columnName` `new_columnName` VARCHAR(45) NULL DEFAULT NULL ;



1

सिंटैक्स: ALTER TABLE table_name CHANGE old_column_name new_column_name डेटाटाइप;

यदि तालिका का नाम छात्र है और स्तंभ का नाम नाम है । फिर, यदि आप नाम को First_Name में बदलना चाहते हैं

ALTER TABLE Student CHANGE Name First_Name varchar(20);

0

mysql संस्करण 5 के लिए

alter table *table_name* change column *old_column_name* *new_column_name* datatype();


0

Mysql में आपकी क्वेरी जैसी होनी चाहिए

ALTER TABLE table_name change column_1 column_2 Data_Type;

आपने Oracle में क्वेरी लिखी है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.