E 'possibile svuotare un intero database collegandosi ad esso con PHP e dando un comando?Database vuoto in MySQL e PHP?
risposta
È possibile ottenere i nomi delle tabelle con
SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your db'
e rendere il Tronca,
ancora, è possibile effettuare
SELECT 'TRUNCATE TABLE ' + table_name + ';' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your db'
E poi iterare il gruppo di risultati di eseguire la query di stringa per ogni record .
Sì. In sostanza, è necessario ottenere un elenco di tutte le tabelle nel database, quindi scorrere su tale elenco ed emettere un TRUNCATE TABLE $tablename
per ciascuna voce.
Questo appare come un sufficiente implementazione decente: Truncate all tables in a MySQL database
Il modo più semplice per farlo, se si dispone dei privilegi, è:
DROP DATABASE dbName; CREATE DATABASE dbName; USE DATABASE dbName;
L'alternativa è quella di interrogare il database information_schema
per i trigger, stored procedure (procedure e funzioni), tabelle, viste e possibilmente qualcos'altro, e rilasciarli singolarmente.
Anche dopo questo, il database potrebbe non essere ancora nello stesso stato di quello appena creato, poiché potrebbe avere un set di caratteri e un set di regole predefiniti personalizzati. Usa ALTER DATABASE
per cambiarlo.
Man mano che le funzioni continuano ad essere aggiunte (eventi ...) avrete sempre più lavoro in questo modo. Quindi, in realtà, l'unico modo per svuotare completamente il database è eliminarlo e ricrearlo.
È possibile ottenere un elenco di tutte le tabelle in un database ($databaseName
), passarle in rassegna tutte e applicare a ciascuna TRUNCATE TABLE
.
$result = mysqli_query($link, "SHOW TABLES IN `$databaseName`");
while ($table = mysqli_fetch_array($result)) {
$tableName = $table[0];
mysqli_query($link, "TRUNCATE TABLE `$databaseName`.`$tableName`");
if (mysqli_errno($link)) echo mysqli_errno($link) . ' ' . mysqli_error($link);
else echo "$tableName was cleared<br>";
}
Questo cancella il contenuto di tutte le tabelle in un database, mantenendo la struttura.
Si prega di [modificare] con ulteriori informazioni. Le risposte solo per codice e "prova questo" sono [scoraggiate] (// meta.stackexchange.com/questions/196187), perché non contengono contenuti ricercabili e non spiegano perché qualcuno dovrebbe "provare questo". Facciamo uno sforzo qui per essere una risorsa per la conoscenza. – Mogsdad
Questo ha funzionato per me.
mysql -u < DB-USER > -p<DB-PASS> --silent --skip-column-names -e "SHOW TABLES" <DB-NAME> | xargs -L1 -I% echo 'DROP TABLE `%`;' | mysql -u < DB-USER > -p< DB-PASS > -v < DB-NAME >
- 1. Crea utente e database MySQL da PHP
- 2. PHP: se! Vuoto e vuoto
- 3. Dimensione del database. PHP - MySQL
- 4. Valore vuoto enumerazione MySQL
- 5. PHP Mysql si collega ai database
- 6. Sincronizzazione database online/offline - MySQL/PHP
- 7. Priorità della connessione al database PHP/MySQL?
- 8. Store php datetime nel database mysql
- 9. php, mysql - Troppe connessioni all'errore del database
- 10. Stabilire una connessione locale tra un database mysql e php
- 11. Mysql e PHP - Aggiornamento del database da un altro server
- 12. Git Bash mysql vuoto
- 13. php e mysql, best practice
- 14. Caratteri stranieri del database MySQL PHP
- 15. Inserire Backbone.js in database MySQL
- 16. Inserimento di una matrice php multidimensionale in un database mysql
- 17. Come ottenere l'ultimo campo in un database Mysql con PHP?
- 18. Database SQL completamente vuoto
- 19. php mysqli Lista database
- 20. Oggetto PHP isset e/o vuoto
- 21. SPSS e PHP/MySQL integrazione
- 22. Apache, PHP e MySQL portatili?
- 23. inserisci array php in mysql
- 24. PHP $ _SERVER ['REMOTE_ADDR'] vuoto
- 25. php campo vuoto richiesto
- 26. PHP MYSQL - Differenza tra 127.0.0.1 e localhost
- 27. Database strutturati per grafici e Php
- 28. imposta la sessione nel database in php
- 29. PHP var vuoto == 0?
- 30. sql linter per mysql e php
si perderanno la struttura della tabella –
Bene il tema di avviamento non ha detto nulla, tranne che vuole un database vuoto con lo stesso nome, in modo perfettamente risposto alla domanda. Non ha senso fare supposizioni forse errate, ecco perché questa risposta mi ha fatto +1. – Flavius
Se l'utente non ha il privilegio 'CREATE DATABASE', sarà bloccato. –