ti-enxame.com

Como excluir todos os registros ou esvaziar uma tabela de banco de dados personalizada?

Eu não consigo encontrar uma maneira simples e confiável de fazer isso - talvez?

// delete row ##
global $wpdb;
$delete = $wpdb->query( 
    $wpdb->prepare( 
         "DELETE * FROM `wp_table_name`"
    )
);

// return ##
$return = __('Table Emptied.');
if ( $wpdb->last_error ) {
    $return = $wpdb->last_error;
}

Mas isso me dá o clássico:

Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe correta para usar próximo a '* FROM wp_table_name' na linha 1

5
Q Studio

Obrigado @s_ha_dum - Truncate faz o trabalho bem:

// delete row ##
global $wpdb;
$delete = $wpdb->query("TRUNCATE TABLE `wp_table_name`");
5
Q Studio

Gostaria apenas de modificar o exemplo do Q Studio para: global $wpdb; $table = $wpdb->prefix . 'table_name'; $delete = $wpdb->query("TRUNCATE TABLE $table");

7
Bobz

2 anos atrasado, mas talvez isso ajude alguém no futuro :)

A sintaxe correta para excluir linhas de uma tabela MySQL é:

DELETE FROM `wp_table_name`
WHERE 1 = 1;
2
dale3h

Isso é tarde e a resposta foi aceita. Mas ninguém mencionou que sua instrução SQL DELETE está incorreta. Tente isto:

DELETE FROM `wp_table_name`

No entanto, isso ainda pode não funcionar. Talvez seja necessário alterar as configurações do MariaDB/MySQL, que protegem essas exclusões, para evitar que você exclua por engano um conjunto completo de dados. Para fazer isso funcionar, você tem que

DELETE FROM `wp_table_name` WHERE `some_column` = 'some_value'

Felicidades

0
Greeso