Tengo una base de datos que he copiado. Ahora estoy tratando de eliminar todo el contenido de la base de datos original y restaurarlo a su estado vacío. dado que es un DB relacional, tiene restricciones clave. ¿Hay alguna herramienta que pueda usar para esto?Vaciar un esquema de base de datos relacional
Respuesta
La forma más sencilla de hacerlo es, probablemente, deshabilitar las comprobaciones de claves externas, luego truncar las tablas. Dado que las claves externas están deshabilitadas, el orden en que trunca las tablas no importa.
set foreign_key_checks = 0;
truncate table parent;
truncate table child;
truncate table ...
Incluso puede usar el esquema_información para generar los enunciados de la tabla truncada para usted. Algo como esto:
select concat('truncate table ',table_schema,'.',table_name,';') as sql_stmt
from information_schema.tables
where table_schema = 'your_schema_name'
and table_type = 'base table';
Gracias por la ayuda. Resolvió el problema. –
Puede colocar temporalmente o deshabilitar todas las restricciones, truncar todas las tablas y restaurar las restricciones. Tomé este enfoque para SQL Server y funciona bien.
http://lists.mysql.com/mysql/194954
Tal vez un enfoque aún mejor sería invertir el esquema en guiones (que se pone bajo control de versiones) y volver a crear la base de datos desde cero.
Gracias. Probaré estas soluciones. –
Gracias, resolvió el problema. –
- 1. Base de datos estándar XSD neutral para describir un esquema de base de datos relacional
- 2. ¿Cómo vaciar una base de datos SQL?
- 3. Modelado: Xml vs. Base de datos relacional
- 4. NoSql vs Base de datos relacional
- 5. Esquema relacional para expresiones temporales de Fowler
- 6. Modelado de ubicaciones geográficas en una base de datos relacional
- 7. Pares de valores clave en la base de datos relacional
- 8. Almacenamiento de objetos R en una base de datos relacional
- 9. Uso de una base de datos relacional para datos Schemaless: mejores prácticas
- 10. ¿Algún buen tutorial de base de datos relacional?
- 11. Representación de pedidos en una base de datos relacional
- 12. BigTable de Google frente a una Base de Datos Relacional
- 13. Sistema de base de datos que no es relacional
- 14. Obtener diagrama UML de la base de datos relacional
- 15. Esquema de base de datos de sondeo
- 16. Actualizaciones de esquema de base de datos
- 17. Esquema de la base de datos EtherPad?
- 18. Mongoose: Esquema de base de datos sugerido
- 19. Transformando la base de datos relacional OLTP en el modelo de almacenamiento de datos
- 20. neo4j - base de datos de gráficos junto con una base de datos relacional?
- 21. ¿Cómo se almacena un trie en una base de datos relacional?
- 22. Recuperar esquema de base de datos
- 23. Vaciar mi base de datos Sqlite3 en RoR
- 24. ¿Se puede hacer una base de datos relacional usando MongoDB?
- 25. ¿Por qué querría usar una base de datos no relacional?
- 26. Esquema de la base de datos de un sistema similar
- 27. El diseño de un esquema de base de datos localizada
- 28. ¿Qué ventajas tiene una base de datos basada en documentos sobre una base de datos relacional?
- 29. Base de datos orientada a objetos Vs objeto Base de datos relacional
- 30. Consejos para refactorizar un esquema de base de datos obsoleto
No conozco una herramienta que pueda hacer esto, pero puede que no sea necesario. El truco es eliminar de las tablas en el orden correcto. Una vez tuve que hacer esto en Oracle. Oracle tiene sus propias tablas que contienen información sobre todas las relaciones entre las tablas que he creado. Al consultar este metatabla, pude obtener el orden correcto de las relaciones para eliminar sin haber tocado nunca una violación de contracción clave (lo estoy publicando como comentario porque no sé si esto es posible en MySQL). La otra opción (y de ejecución más rápida) es desactivar contraints, truncar, volver a habilitar las restricciones. – FrustratedWithFormsDesigner