स्तंभ को अशक्त करने के लिए बदलना


318

मैं तालिका स्तंभ को बदलने योग्य होना चाहता हूं। मैंने उपयोग कर लिया है:

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

इस पर एक त्रुटि देता है Modify। सही सिंटैक्स क्या है?


7
कृपया भविष्य में त्रुटि संदेश पोस्ट करें
a'r

1
मैंने SQL सर्वर टैग को हटा दिया है क्योंकि ऐसा लगता है कि यह सभी के लिए एक सामान्य मुक्त हो गया है।
मार्टिन स्मिथ

जवाबों:


514

मान लेना SQL Server(आपके पिछले प्रश्नों के आधार पर):

ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL

INTअपने वास्तविक डेटाटाइप से बदलें ।


43

Oracle डाटाबेस 10g उपयोगकर्ताओं के लिए:

alter table mytable modify(mycolumn null);

जब आप अन्यथा प्रयास करते हैं तो आपको "ORA-01735: अमान्य अलर्ट विकल्प" मिलता है

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;

कूल, आपको डेटा-प्रकार निर्दिष्ट करने की आवश्यकता नहीं है, इसे अशक्त बनाने के लिए बस "अशक्त"।
गाबे हल्समर

41

यदि यह MySQL सिंटैक्स होता, तो टाइप गायब हो जाता, क्योंकि कुछ अन्य प्रतिक्रियाएं इंगित करती हैं। सही MySQL सिंटैक्स होता:

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL

MySQL उपयोगकर्ताओं के लिए स्पष्टता के लिए यहाँ पोस्टिंग।



5

हालाँकि मुझे नहीं पता कि आप आरडीबीएमएस का उपयोग क्या कर रहे हैं, आपको संभवतः पूरे कॉलम विनिर्देश देने की ज़रूरत है, न कि केवल यह कहें कि अब आप इसे अशक्त होना चाहते हैं। उदाहरण के लिए, यदि यह वर्तमान में है INT NOT NULL, तो आपको जारी करना चाहिए ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT


यह एक सही और वर्णनात्मक उत्तर है, इसलिए केवल स्पष्ट करना यदि Null| NOT NULLनिर्दिष्ट नहीं है, कॉलम अशक्त होगा।
हामिद हेयर्डियन

4

जैसा कि दूसरों ने देखा है, कमांड के लिए सटीक सिंटैक्स DBMS के विभिन्न स्वादों में भिन्न होता है। Oracle में आपके द्वारा उपयोग किए गए सिंटैक्स:

SQL> desc MACAddresses
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COMPUTER                                           NUMBER
 MACADDRESS                                         VARCHAR2(12)
 CORRECTED_MACADDRESS                      NOT NULL VARCHAR2(17)

SQL> alter table MACAddresses
  2       modify corrected_MACAddress null
  3  /

Table altered.

SQL> desc MACAddresses
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COMPUTER                                           NUMBER
 MACADDRESS                                         VARCHAR2(12)
 CORRECTED_MACADDRESS                               VARCHAR2(17)

SQL>


0
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;

यह आपके काम आएगा।

यदि आप अशक्त करने के लिए एक अशक्त स्तंभ को बदलना चाहते हैं, तो शून्य संलयन को शामिल करने की आवश्यकता नहीं है। क्योंकि डिफ़ॉल्ट कॉलम शून्य नहीं मिलते हैं।

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;

0

यह इस बात पर निर्भर करता है कि आप जो SQL इंजन का उपयोग कर रहे हैं, Sybase में आपकी कमांड ठीक काम करती है:

ALTER TABLE Merchant_Pending_Functions 
Modify NumberOfLocations NULL;

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