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 ?


2 Answers 2


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" );
  • Not correct. dbDelta can, and does add columns. Commented Dec 21, 2012 at 23:26
  • Sorry, @cale_b, I've updated my answer
    – shea
    Commented Dec 21, 2012 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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