DROP TABLE (Español)

la Sintaxis de

DROP TABLE tbl_name ... 

Descripción

DROP TABLE elimina una o más tablas. Debe tener el privilegio DROP para cada tabla. Todos los datos de la tabla y la definición de la tabla se eliminan, así como los disparadores asociados a la tabla, ¡así que tenga cuidado con esta instrucción! Si alguna de las tablas nombradas en la lista de argumentos no existe, MariaDB devuelve un error indicando por nombre qué tablas no existentes no pudo eliminar, pero también elimina todas las tablas de la lista que existen.,

importante: cuando se elimina una tabla, los privilegios de usuario en la tabla no se eliminan automáticamente. Ver GRANT.

si otro subproceso está utilizando la tabla en una transacción explícita o en una transacción de autocommit, entonces el subproceso adquiere un bloqueo de metadatos (MDL) en la tabla. La instrucción DROP TABLE esperará en el estado de subproceso «esperando el bloqueo de metadatos de la tabla» hasta que se libere la MDL. Las MDL se liberan en los siguientes casos:

  • si se adquiere una MDL en una transacción explícita, la MDL se liberará cuando finalice la transacción.,
  • si se adquiere una MDL en una transacción de autocommit, entonces la MDL se liberará cuando finalice la instrucción.
  • Las Tablas transaccionales y no transaccionales se manejan de la misma manera.

tenga en cuenta que para una tabla con particiones, DROP TABLE elimina permanentemente la definición de tabla, todas sus particiones y todos los datos almacenados en esas particiones. También elimina la definición de partición (.par) archivo asociado con la tabla eliminada.

para cada tabla referenciada, DROP TABLE elimina una tabla temporal con ese nombre, si existe., Si no existe, y la palabra clave TEMPORARY no se utiliza, elimina una tabla no temporal con el mismo nombre, si existe. La palabra clave TEMPORARY garantiza que una tabla no Temporal No se caiga accidentalmente.

UseIF EXISTS para evitar que se produzca un error en las tablas que no existen. Se genera un NOTE para cada tabla inexistente cuando se utilizaIF EXISTS. Consulte mostrar advertencias.

si una clave foránea hace referencia a esta tabla, la tabla no se puede eliminar., En este caso, es necesario soltar la clave foránea primero.

RESTRICT y CASCADE se les permite hacer la portabilidad desde otros sistemas de base de datos más fácil. En MariaDB, no hacen nada.

el comentario antes de los nombres de la tabla (/*COMMENT TO SAVE*/) se almacena en el registro binario. Esa característica puede ser utilizada por las herramientas de replicación para enviar sus mensajes internos.

es posible especificar nombres de tabla como db_name.tab_name. Esto es útil para eliminar tablas de varias bases de datos con una instrucción., Consulte calificadores de identificador para obtener más información.

el privilegio DROP es necesario para usar DROP TABLE en tablas No temporales. Para las tablas temporales, no se requiere ningún privilegio, ya que dichas tablas solo son visibles para la sesión actual.

Nota:DROP TABLEconfirma automáticamente la transacción activa actual,a menos que utilice la palabra claveTEMPORARY.

MariaDB a partir de 10.5.4

desde MariaDB 10.5.,4, DROP TABLEelimina de forma fiable los restos de tabla dentro de un motor de almacenamiento, incluso si falta el archivo .frm. Antes de eso, un archivo .frm faltante provocaría que la instrucción fallara.

MariaDB a partir de 10.3.1

WAIT/NOWAIT

establecer el tiempo de espera de bloqueo. Ver espera y NOWAIT.

DROP TABLE en la réplica

DROP TABLE tiene las siguientes características en la replicación:

  • DROP TABLE IF EXISTS siempre se registran.,
  • DROP TABLE sin SI EXISTE para las tablas que no existen no se escriben en el log binario.
  • Dropping ofTEMPORARY las tablas tienen el prefijoTEMPORARY . Estas caídas solo se registran cuando se ejecuta la instrucción o la replicación en modo mixto.,
  • Uno DROP TABLE declaración puede estar conectado con hasta 3 diferentes BAJA instrucciones:
    • CAÍDA de TABLA TEMPORAL list_of_non_transactional_temporary_tables
    • CAÍDA de TABLA TEMPORAL list_of_transactional_temporary_tables
    • DROP TABLE list_of_normal_tables

A partir de MariaDB 10.0.,8, DROP TABLE en el maestro es tratada en el esclavo como DROP TABLE IF EXISTS. Puede cambiar eso estableciendo slave-ddl-exec-mode a STRICT.

eliminar un #sql-interno… Table

si el proceso mysqld se mata durante una tabla ALTER, puede encontrar una tabla llamada # sql -… en su directorio de datos. En MariaDB 10.3, las tablas InnoDB con este prefijo se borrarán automáticamente durante startup.In MariaDB 10.4 nos aseguraremos de que estas tablas temporales siempre se eliminen automáticamente.,

Si desea eliminar una de estas tablas explícitamente puede hacerlo mediante la siguiente sintaxis:

DROP TABLE `#mysql50##sql-...`;

Cuando se ejecuta un ALTER TABLE…ALGORITHM=INPLACE que reconstruye la tabla InnoDB creará un interno #sql-ib tabla. Para estas tablas, el archivo .frm se llamará de otra manera. Para eliminar dicha tabla después de un bloqueo del servidor, debe cambiar el nombre del archivo #sql*.frm para que coincida con el archivo #sql-ib*.ibd.,

eliminar todas las tablas en una base de datos

la mejor manera de eliminar todas las tablas en una base de datos es ejecutando DROP DATABASE, que eliminará la base de datos en sí y todas las tablas en ella.

sin embargo, si desea eliminar todas las tablas de la base de datos, pero también desea mantener la base de datos en sí y cualquier otro objeto que no sea de la tabla, deberá ejecutar DROP TABLE para eliminar cada tabla individual. Puede construir estos comandos DROP TABLE consultando la tabla TABLES en la base de datos information_schema., Por ejemplo:

SELECT CONCAT('DROP TABLE IF EXISTS `', TABLE_SCHEMA, '`.`', TABLE_NAME, '`;')FROM information_schema.TABLESWHERE TABLE_SCHEMA = 'mydb';

Examples

DROP TABLE Employees, Customers;

Notes

tenga en cuenta que DROP TABLE puede soltar tanto tablas como secuencias. Esto se hace principalmente para permitir que herramientas antiguas como mysqldump funcionen con secuencias.

vea también

  • CREATE TABLE
  • ALTER TABLE
  • SHOW CREATE TABLE
  • DROP SEQUENCE
  • variable slave-ddl-exec-mode.

Leave a Comment