33 Votos

SQLite: Examinar si existe una Tabla

Información de Stefan Trost | 22/02/2023 a las 21:03

A veces queremos comprobar primero si existe una determinada tabla antes de realizar una declaración SQL. Esto puede ser necesario, por ejemplo, antes de crear una tabla y desea asegurarse de que no haya ninguna tabla con este nombre. O nos gustaría escribir datos en una tabla o leer algunos datos de una tabla y aún no sabemos si la tabla en cuestión ya existe. También en esta situación, un examen puede tener sentido para evitar un mensaje de error y poder crear la tabla si es necesario.

En este tutorial nos gustaría ver qué opciones están disponibles en este contexto con SQLite. Lo primero importante para esto es la tabla "sqlite_master" que es administrada por el mismo SQLite. En esta tabla están los nombres de todas las tablas existentes que también se pueden consultar al usarla.

Aquí hay un ejemplo de cómo verificar la existencia de la tabla "tab":

SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'tab';

Si el resultado de esta consulta está vacío, sabemos que la tabla no existe.

Tablas Temporales

Importante: Las tablas temporales no se pueden recuperar de "sqlite_master" porque se enumeran en "sqlite_temp_master". Si estamos interesados en tablas temporales, podemos simplemente reemplazar "sqlite_master" con "sqlite_temp_master" en la consulta anterior.

SELECT name FROM sqlite_temp_master WHERE type = 'table' AND name = 'tab_temp';

Aquí probamos la existencia de una tabla temporal llamada "tab_temp".

Crear Tabla solo si no existe

Para algunas aplicaciones, otras soluciones son más fáciles de implementar. Por ejemplo, imagina que uno de nuestros programas necesita algunas tablas en nuestra base de datos. Al iniciar el programa, no está seguro si el programa se ha iniciado antes y si ya se han creado las tablas correspondientes. Por lo tanto, nos gustaría verificar si una tabla específica ya existe para que solo podamos crear la nueva tabla si no es así.

CREATE TABLE IF NOT EXISTS 'tab' (...);

Para este caso, la declaración "CREATE TABLE IF NOT EXISTS" puede ser la forma más sencilla. Esta declaración es equivalente a la declaración "CREATE TABLE" pero se complementa con "IF NOT EXISTS". Eso significa que la nueva tabla solo se crea si aún no existe. Esto le ahorra el desvío de verificar esto antes.

ResponderPositivoNegativo

Sobre el Autor

AvatarPuede encontrar software de Stefan Trost en la pagina es.sttmedia.com. ¿Necesita un software individual según sus propios requisitos? Escribenos: es.sttmedia.com/contacto
Ver Perfil

 

Temas Relacionados

CSS: Cómo incluir CSS en HTML

Tutorial | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.