ver una tablas tabla para mostrar leer funciones desde datos crear consultar con bases acceso mysql ruby datamapper

mysql - una - ¿Cómo trunco las tablas correctamente?



php para bases de datos mysql (2)

En lugar de utilizar Deshabilitar la comprobación de clave externa.

Puede utilizar el siguiente código.

DELETE FROM forums; ALTER TABLE forums AUTO_INCREMENT = 1; DELETE FROM dates; ALTER TABLE dates AUTO_INCREMENT = 1; DELETE FROM remarks; ALTER TABLE remarks AUTO_INCREMENT = 1;

Solo eliminará todas las filas y hará un incremento de id desde 1 en adelante.

Estoy usando datamapper con ruby ​​para almacenar datos en ciertas tablas.

Varias de las tablas tienen una gran cantidad de información y quiero eliminarlas cuando el usuario "reconstruye la base de datos" (básicamente elimina todo y vuelve a calcular los datos).

Originalmente probé Forum.all.destroy y lo hice para todas las diferentes tablas, pero noté que algunos de ellos simplemente no fueron eliminados desde phpmyadmin. Sólo puedo imaginar que es debido a las claves externas. Aunque en realidad no lo sé porque mi otra tabla, cuyas teclas externas se eliminaron con éxito. Sin mencionar, id en lugar de ''cero'', de todos modos, las claves no llegan a números extraordinariamente grandes (como la clave # 500,000).

Luego intenté ejecutarlo con el código siguiente, pero no borra las tablas debido a las "restricciones de clave externa". Quiero forzarlo a funcionar porque sé a ciencia cierta que estoy eliminando todas las tablas que se apoyan entre sí (solo no estoy eliminando 2 tablas, una tabla de configuración y una tabla de almacenamiento aleatorio, ninguna de las cuales utiliza llaves extranjeras).

Hasta ahora tengo ...

adapter = DataMapper.repository(:default).adapter adapter.execute(''TRUNCATE TABLE `forums`, `dates`, `remarks`'');

Eso estaría bien, excepto que la sintaxis mysql es aparentemente incorrecta. así que eso es lo primero

Lo hice 1 por 1 en phpmyadmin y cuando lo hice así, dice

Cannot truncate a table referenced in a foreign key constraint


Plan A:

SET FOREIGN_KEY_CHECKS = 0; -- Disable foreign key checking. TRUNCATE TABLE forums; TRUNCATE TABLE dates; TRUNCATE TABLE remarks; SET FOREIGN_KEY_CHECKS = 1; -- Enable foreign key checking.

Plan B:

Primero debe truncar las tablas secundarias, luego las tablas primarias.

La desactivación de las comprobaciones de clave externa conlleva el riesgo de ingresar filas en sus tablas que no cumplan con las restricciones que pueden causar un comportamiento indefinido.