x

Cómo eliminar la tabla de una base de datos sólo si ya existe

Por contributor

Si utilizas una base de datos por bastante tiempo, probablemente llegará el momento en que quieras eliminar una tabla si ya existe. A menudo la razón por la que querrás hacer esto es porque necesitas crear una tabla y no quieres toparte con un error cuando intentas crearla debido a que el nombre de la tabla ya existe. Sea cual sea tu motivo, puedes eliminar una tabla existente en MySQL, Microsoft SQL y Oracle.

Paso 1

MySQL fue lo suficientemente amable al crear esta herramienta y hacer que sea sencillo eliminar una tabla existente. Para eliminar una tabla con un nombre no deseado " Drop_Me" ejecuta la siguiente búsqueda:

DROP TABLE IF EXISTS Drop_Me

(por sus términos en inglés, eliminar tabla si "Drop_me" ya existe).

Paso 2

Microsoft SQL hace que sea un poco más difícil eliminar una tabla si ya existe. Para lograr esto, necesitarás usar una frase If (condicional si) y la función EXISTS (existe):

IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'Drop_Me') AND type = (N'U')) DROP TABLE Drop_Me

(por sus términos en inglés, si existe(seleccionar 1 desde sys.objetcs donde object_id = object_id(N'Drop_Me") y escribe = (N'U')) eliminar tabla Drop_Me.

Paso 3

Oracle lleva la complejidad de eliminar una tabla existente a otro nivel. En esta codificación de muestra, necesitarás conocer el nombre del dueño de la tabla, que en este caso es "Me" (yo):

DECLARE v_count NUMBER :=0; BEGIN SELECT COUNT(*) INTO v_count FROM all_tables WHERE table_name='Drop_Me' AND owner='Me'; IF v_count = 1 THEN EXECUTE IMMEDIATE 'DROP TABLE Me.Drop_Me'; END IF; END;

(Por sus términos en inglés, DECLARAR v_count Número :=0; Comienza Selecciona COUNT(*) en v_count desde todas_tablas DONDE nombre_tabla='Drop_Me' y owner='Me'; Si v_count = 1 Entonces Ejecuta 'DROP TABLE Me.Drop_Me'; Terminar si; FIN;