Esiste una query SQL per cancellare tutte le tabelle il cui nome comincia per "XYZ"?
Esiste una query SQL per cancellare tutte le tabelle il cui nome comincia per "XYZ"?
Non credo sia possibile. Anche cercando su Google non si trova nulla.
L'unica cosa che ho trovato è questa da linea di comando: http://azimyasin.wordpress.com/2007/...ltiple-tables/
Altrimenti usa un client mysql.
![]()
Non so se su MySql esiste l'SQL dinamico come in Sql Server.Originariamente inviato da zeta2011
Non credo sia possibile. Anche cercando su Google non si trova nulla.
L'unica cosa che ho trovato è questa da linea di comando: http://azimyasin.wordpress.com/2007/...ltiple-tables/
Altrimenti usa un client mysql.
![]()
Se si creati un cursore facendo una query su information_schema.tables (filtrato per schema)
dove ti prendi il table_name e crei una istruzione dinamica che droppa la variabile del cursore.
Concordo con gli altri sul fatto che non so se si possa fare ma potresti fare una cosa del genere, tramite Php...
Codice PHP:
$seleziona = mysql_query("SHOW TABLES FROM database LIKE 'tuo pattern'", $dbLink);
while($fetch = mysql_fetch_row($seleziona)) {
$arrayTabelle[] = $fetch[0];
}
for($i=0; $i<count($arrayTabelle); $i++) {
mysql_query("DROP TABLE $arrayTabelle[$i]", $dbLink);
}
Anche se così invii più query.
Un'altra soluzione invece potrebbe essere, a mio avviso, quella di ciclare l'array contenente i nomi delle tabelle e poi inviare un'unica query mettendo la virgola tra i nomi delle tabelle.
DROP TABLE: [ http://dev.mysql.com/doc/refman/5.5/en/drop-table.html ]