Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I created a table using the dbDelta function and then removed a few columns and added a few. The new columns did get created but the old columns did not get deleted from the table.

Is there a different way I am supposed to delete columns from the table ?

share|improve this question
    
+1 was looking for the same answer :) –  Sisir Nov 22 at 7:51

2 Answers 2

up vote 4 down vote accepted

As far as I know, dbDelta() is primarily used to add tables to the database. It can also add or alter columns. To delete columns, you should use $wpdb->query():

global $wpdb;
$table = $wpdb->prefix . 'table_name';
$wpdb->query( "ALTER TABLE $table DROP COLUMN column_name" );
share|improve this answer
    
Not correct. dbDelta can, and does add columns. –  cale_b Dec 21 '12 at 23:26
    
Sorry, @cale_b, I've updated my answer –  bungeshea Dec 21 '12 at 23:41

No, dbDelta can add or alter columns, but not drop them.

The code for the dbDelta function is in wp-admin/includes/upgrade.php. You can examine what it is capable of there.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.