Löscht dbDelta auch Spalten?

7

Ich habe eine Tabelle mit der Funktion dbDelta erstellt, dann einige Spalten entfernt und einige hinzugefügt. Die neuen Spalten wurden erstellt, aber die alten Spalten wurden nicht aus der Tabelle gelöscht.

Gibt es eine andere Möglichkeit, Spalten aus der Tabelle zu löschen?

Prakash Raman
quelle

Antworten:

9

Soweit ich weiß, dbDelta()wird es hauptsächlich zum Hinzufügen von Tabellen zur Datenbank verwendet. Es können auch Spalten hinzugefügt oder geändert werden. Um Spalten zu löschen, sollten Sie Folgendes verwenden $wpdb->query():

global $wpdb;
$table = $wpdb->prefix . 'table_name';
$wpdb->query( "ALTER TABLE $table DROP COLUMN column_name" );
Shea
quelle
Nicht richtig. dbDelta kann und fügt Spalten hinzu.
random_user_name
Entschuldigung, @cale_b, ich habe meine Antwort aktualisiert
Shea
11

Nein, dbDelta kann Spalten hinzufügen oder ändern, aber nicht löschen.

Der Code für die dbDelta-Funktion befindet sich in wp-admin / includes / upgrade.php. Sie können dort untersuchen, wozu es fähig ist.

Otto
quelle