7

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 ?

9

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. – random_user_name Dec 21 '12 at 23:26
  • Sorry, @cale_b, I've updated my answer – shea Dec 21 '12 at 23:41
11

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, privacy policy and cookie policy

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