2010-07-13 16 views
13

मैं एक तालिका में एक कॉलम जोड़ना चाहता हूं, लेकिन मैं इसे विफल नहीं करना चाहता अगर यह तालिका में पहले ही जोड़ा जा चुका है। इसे कैसे प्राप्त किया जा सकता है?MySQL: कॉलम कैसे जोड़ें यदि यह पहले से मौजूद नहीं है?

# Add column fails if it already exists 
ALTER TABLE `TableName` ADD `ColumnName` int(1) NOT NULL default '0'; 
+0

की [mysql तालिका में कॉलम जोड़ें यदि यह मौजूद नहीं है संभव डुप्लिकेट ] (http://stackoverflow.com/questions/972922/add-column-to-mysql-table-if-it-does-not-exist) – derobert

उत्तर

18

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

IF NOT EXISTS(SELECT NULL 
      FROM INFORMATION_SCHEMA.COLUMNS 
      WHERE table_name = 'tablename' 
      AND table_schema = 'db_name' 
      AND column_name = 'columnname') THEN 

    ALTER TABLE `TableName` ADD `ColumnName` int(1) NOT NULL default '0'; 

END IF; 

संदर्भ:

+0

क्यों '! =' तुलना। मुझे संदेह है कि इसके लिए एक अच्छा कारण होना चाहिए। –

+0

इसके अलावा यह 'कॉलम' कॉलमनाम 'सही' होना चाहिए? –

+0

@SadFarooq: कॉलम चेक को सही किया गया है, लेकिन वाक्यविन्यास अन्यथा सही है - [यदि आप दस्तावेज़ों की जांच करते हैं तो COLUMN वैकल्पिक है] (http://dev.mysql.com/doc/refman/5.1/en/alter-table। एचटीएमएल) –

संबंधित मुद्दे