[semi-OT] Re: script reinicio

Chema Cortes pych3m4 en gmail.com
Mar Dic 5 16:52:27 CET 2006


El 4/12/06, Alberto Valverde<alberto en toscat.net> escribió:
> Si no puedes usar transacciones y realmente lo que quieres es dejar
> las tablas vacías (completamente) deberás usar "DELETE" (o, más
> rápido, "TRUNCATE", no sé si MySQL lo soprta....) en las tablas que
> quieras vaciar:
>
> for tabla in tablas_a_vaciar:
>      conn.execute("DELETE FROM %s" % tabla)

Señalar que TRUNCATE tiene dos problemillas:

- sólo el propietario puede truncar la tabla (no basta con dar
permisos de borrado)
- se corta el truncado si detecta claves externas. Para evitar
problemas, se debe pasar a TRUNCATE una lista con la tabla que
queremos borrar junto con las tablas que referencia (o, mejor, si se
usa postgresql, dejarlo que lo haga postgresql añadiendo CASCADE al
comando).

MySQL lo tiene, aunque dependiendo de la versión puede que figure como
un mero alias del DELETE FROM.




Más información sobre la lista de distribución Python-es