Me gustaría eliminar todas las tablas de la base de datos, pero no borrar la base de datos. Es posible ? Solo busco una forma más corta que eliminar la base de datos y volver a crearla. Gracias !¿Cómo colocar todas las tablas en la base de datos sin soltar la base de datos?
Respuesta
Lo más corto es volver a crear la base de datos. pero si no quiere ...
Esto es para MySQL/PHP. No probado, pero algo así.
$mysqli = new mysqli("host", "my_user", "my_password", "database");
$mysqli->query('SET foreign_key_checks = 0');
if ($result = $mysqli->query("SHOW TABLES"))
{
while($row = $result->fetch_array(MYSQLI_NUM))
{
$mysqli->query('DROP TABLE IF EXISTS '.$row[0]);
}
}
$mysqli->query('SET foreign_key_checks = 1');
$mysqli->close();
No hay una manera simple de hacer esto. Ya sea que usted necesita saber lo que las mesas son de antemano:
// edición que puede obtener esta información a través de la consulta SHOW TABLE STATUS
$tables = array('users','otherdata');
foreach($tables as $table){
db.execute("DROP TABLE "+$table);
}
o se puede dejar caer la base de datos y volver a crearlo vacía (en realidad no es mucho esfuerzo):
db.execute('DROP DATABASE SITEDATA');
db.execute('CREATE DATABASE SITEDATA');
Si hay otras cosas en la base de datos (procedimientos almacenados, funciones y permisos de usuario asociados con estas cosas) dejar caer la base de datos puede no ser lo que el OP quiere. –
Como dijo fredley, si no necesita nada más que la base de datos vacía, simplemente colóquelo y vuelva a crearlo. – Chris
Si no puede hacer un DROP/CREATE, el primer método es la única manera, no puede colocar todas las tablas en un solo comando. – fredley
Habría que colocar cada mesa en el PP por separado, para dejar caer la base de datos y volver a crearlo en realidad será la ruta más corta (y la más rápida para el caso)
Cuando tenía que hacer esto en Oracle, escribía una declaración de selección que generaría los enunciados de la tabla de soltar para mí. Algo a los efectos de:
Seleccione 'DROP TABLE' || table_name || ';' de user_tables;
Pude canalizar la salida de la declaración de selección a un archivo. Después de ejecutar esto, tendría un archivo que soltaría todas mis tablas para mí. Se vería algo así como:
DROP TABLE TABLE1;
DROP TABLE TABLE2;
DROP TABLE TABLE3;
etc ...
No es un experto en MySQL, pero me imagino que tendría una instalación similar a ambas seleccione todas las tablas de un esquema, así como una salida directa de una sentencia SQL en un archivo.
Es posible que tenga que aplicar repetidamente una secuencia de comandos de este tipo porque la presencia de restricciones de clave externa puede evitar que se eliminen las tablas. –
Absolutamente. Podría tomar varios pases. –
Hmm, no necesariamente. Si elimina todas las tablas en una transacción, puede diferir las verificaciones de restricciones ('SET RESTRAINTS ALL DEFERRED;') - en Oracle. En MySQL puede desactivar temporalmente las comprobaciones de claves externas (como en mi solución - 'SET foreign_key_checks = 0;') Esto puede al menos reducir el número de fases necesarias. –
Utilice SHOW TABLE STATUS
para obtener todas las tablas en su base de datos, luego repita el resultado y suéltelas una a una.
hay algunas soluciones aquí en los comentarios: http://dev.mysql.com/doc/refman/5.1/en/drop-table.html
que necesitaba para dejar todas las tablas excepto un par de un volcado accidental.
funciónUn PHP para soltar todas las tablas excepto algunos (adaptado de here), para cualquier otra persona que pueda necesitar:
<?php
$mysqli = new mysqli("localhost", "user", 'password', "database");
function drop_all_tables($exceptions_array, $conn) {
$exceptions_string="('" ;
foreach ($exceptions_array as $table) {
$exceptions_string .=$table . "','";
}
$exceptions_string=rtrim($exceptions_string, ",'");
$exceptions_string .="')" ;
$sql="SELECT CONCAT('DROP TABLE ', TABLE_NAME, '; ')
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name NOT IN $exceptions_string";
$result=$ conn->query($sql);
while($row = $result->fetch_array(MYSQLI_NUM)) {
$conn->query($row[0]);
}
}
//drop_all_tables(array("table1","table2","table3","table4"), $mysqli);
?>
- 1. Lista de todas las tablas en la base de datos
- 2. Cómo colocar todas las tablas de la base de datos con manage.py CLI en Django?
- 3. Renombrar todas las tablas en la base de datos
- 4. ¿Cómo puedo colocar todas las tablas en mi base de datos?
- 5. ¿Cómo puedo eliminar el contenido de todas las tablas de mi base de datos en phpMyAdmin sin soltar la base de datos?
- 6. Listar todas las tablas en una base de datos
- 7. Soltar todas las funciones de la base de datos de Postgres
- 8. ¿Cómo puedo migrar mi base de datos con raíles a la primera revisión sin soltar primero la base de datos?
- 9. Cómo colocar todas las tablas de una base de datos en SQL Server 2005 en una declaración, excepto una tabla
- 10. ¿Cómo soltar la base de datos incrustada neo4j con java?
- 11. Ordenar columnas en las tablas de la base de datos
- 12. Enumeraciones persistentes en las tablas de la base de datos
- 13. Alterar las tablas de la base de datos en Django
- 14. cómo soltar la base de datos en sqlite?
- 15. Base de datos por aplicación VS Una gran base de datos para todas las aplicaciones
- 16. MongoDB soltar todas las bases de datos
- 17. Obtenga recuentos de todas las tablas en la base de datos MySQL
- 18. Sqlite: ¿Cómo reinicio todas las tablas de la base de datos?
- 19. ¿Cómo contar tablas vacías en la base de datos?
- 20. Número total de campos en todas las tablas de la base de datos
- 21. Obtenga todas las tablas y todas las columnas de una base de datos odbc
- 22. ¿Cómo puedo crear una nueva base de datos SQLite, con todas las tablas, sobre la marcha?
- 23. Recuperar una lista de todas las tablas en la base de datos
- 24. Crear copias de las tablas de la base de datos Oracle en una base de datos SQLite
- 25. Doctrine crea automáticamente todas las tablas de la base de datos?
- 26. ¿podemos listar todas las tablas en la base de datos msaccess usando sql?
- 27. ¿Cómo puedo cambiar los prefijos en todas las tablas de mi base de datos MySQL?
- 28. Copia de datos relacionales de la base de datos a la base de datos
- 29. Ingreso 3 tablas en la base de datos SQLite
- 30. ¿Cómo se maneja la gestión de la configuración de las tablas de la base de datos?
nice to thing at foreign_key – IcanDivideBy0