Cum să folosești comanda MySQL "TRUNCATE TABLE"?

26 apr. 2012, 11:18:20
Vizualizări: 20.6K
Voturi: 5

Am încercat dbDelta și $wpdb->query, dar nu funcționează. Are cineva vreo idee?

1
Comentarii

Care este eroarea? O poți afișa folosind următorul apel imediat după ce ai executat instrucțiunea: $e = $wpdb->query($sql); die(var_dump($e));

Thomas Thomas
26 apr. 2012 11:47:24
Toate răspunsurile la întrebare 3
0
12

După cum am încercat astăzi, TRUNCATE este MULT MAI BUN decât DELETE, deoarece DELETE a stricat site-ul, iar TRUNCATE doar golește tabela. Iată codul funcțional:

global $wpdb;

$wpdb->query('TRUNCATE TABLE wp_posts');
20 dec. 2013 23:23:52
5

Conform acestui post de pe forum, comanda truncate nu funcționează. Presupun că, deoarece este o interogare destul de distructivă, aceasta este filtrată de către clasă. Există și acest post Trac, care, dacă îl înțeleg corect, interzice instrucțiunile DDL.

26 apr. 2012 16:33:01
Comentarii

Ei bine, poate voi folosi DELETE în loc de truncate.

goodseller goodseller
26 apr. 2012 17:51:54

@goodseller Nu sunt sigur ce încerci să faci, așa că poate nu este important pentru tine - dar reține că DELETE nu resetează coloanele auto-incrementale. Deci, chiar dacă tabela ta va fi goală, următorul ID de articol va continua de unde a rămas ultima valoare auto-incrementată.

MathSmath MathSmath
26 apr. 2012 22:53:18

@MathSmath Da~ Așa este, foarte adevărat. Dar există vreo modalitate de a face asta?

goodseller goodseller
27 apr. 2012 07:02:01

Am găsit soluția: $wpdb->query("ALTER TABLE tableName AUTO_INCREMENT=0") Mulțumesc @MathSmath :)

goodseller goodseller
27 apr. 2012 08:37:57
  1. codul din postarea de forum legată nu a funcționat din cauza unei greșeli de scriere. 2. ticket-ul trac discută doar despre valorile returnate de instrucțiunile ddl.
skndstry skndstry
13 sept. 2016 12:03:29
0

Știu că există răspunsuri similare mai sus, dar în răspunsurile de mai sus, tabelul wp_post este utilizat și dacă cineva folosește din greșeală acel cod, își va pierde toate articolele.

Deci, împărtășesc o metodă corectă de a trunchia.

   global $wpdb;
   $table_name = $wpdb->base_prefix.'numele_tabelului_fara_prefix';
   $wpdb->query("TRUNCATE TABLE $table_name");
19 oct. 2021 15:47:20