mysql.h


DROP DATABASE

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

DROP DATABASE elimina todas las tablas de la base de datos y borra la base de datos. Hay que ser extremadamente cuidadoso con esta sentencia. Para usar DROP DATABASE, es necesario tener el privilegio DROP para la base de datos.

En MySQL 3.22 y posteriores, se pueden usar las palabras clave IF EXISTS para evitar el error que se produce si la base de datos no existe.

DROP SCHEMA se puede usar desde MySQL 5.0.2.

Si se usa DROP DATABASE en una base de datos enlazada simbólicamente, se eliminan tanto el enlace como la base de datos original.

A partir de MySQL 4.1.2, DROP DATABASE devuelve el número de tablas que fueron eliminadas. Este número corresponde a los ficheros '.frm' eliminados.

La sentencia DROP DATABASE elimina del directorio de la base de datos dada aquellos ficheros y directorios que haya creado el propio MySQL durante el funcionamiento normal:

  • Todos los ficheros con estas extensiones:
    .BAK .DAT .HSH .ISD
    .ISM .ISM .MRG .MYD
    .MYI .db .frm
  • Todos los subdirectorios con nombres que consistan en dos dígitos hexadecimales 00-ff. Estos son subdirectorios usados por tablas RAID.
  • El fichero 'db.opt', si existe.

Si existen otros ficheros o directorios en el directorio de la base de datos después de que MySQL haya eliminado los listados antes, el directorio de la base de datos no podrá ser eliminado. En ese caso, se debe eliminar cualquier fichero o directorio que quede de forma manual y repetir la sentencia DROP DATABASE de nuevo.

También se pueden eliminar bases de datos usando mysqladmin.