Comprobar si la tabla existe en SQLite usando Python

En este artículo, discutiremos cómo verificar si existe una tabla en una base de datos SQLite utilizando el módulo sqlite3 de Python.

En una base de datos SQLite, los nombres de todas las tablas se incluyen en la tabla sqlite_master. Entonces, para verificar si una tabla existe o no, debemos verificar si el nombre de la tabla en particular está en la tabla sqlite_master o no.

Para realizar esta tarea, ejecute la siguiente consulta y guárdela en una variable.

SELECCIONE tableName DESDE sqlite_master DONDE type=’table’ AND tableName=’STUDENT’;

Luego use el método fetchall() en esa variable para generar una lista de tablas que contengan el nombre de lo que se encuentra. Si la lista está vacía, la tabla no existe en la base de datos.

Ejemplo: Primero, conectémonos a la base de datos SQLite g4gdata.db y luego creemos un objeto de cursor. Ahora, usando el objeto del cursor, ejecutamos algunas consultas para crear varias tablas: EMPLEADO, ESTUDIANTE, PERSONAL. Luego verificamos si la tabla ESTUDIANTE y PROFESOR existe en la base de datos g4gdata.db o no. 

Python3

# import required module
import sqlite3
 
# connect to database
con = sqlite3.connect('g4gdata.db')
 
# create cursor object
cur = con.cursor()
 
# create tables
cur.execute(
  """CREATE TABLE EMPLOYEE(FIRST_NAME VARCHAR(255),
  LAST_NAME VARCHAR(255),AGE int, SEX CHAR(1), INCOME int);""")
print('EMPLOYEE table created')
 
cur.execute(
  """CREATE TABLE STUDENT(NAME VARCHAR(255),AGE int, SEX CHAR(1));""")
print('STUDENT table created')
 
cur.execute(
  """CREATE TABLE STAFF(NAME VARCHAR(255), INCOME int);""")
print('STAFF table created')
print()
 
# check if table exists
print('Check if STUDENT table exists in the database:')
listOfTables = cur.execute(
  """SELECT tableName FROM sqlite_master WHERE type='table'
  AND tableName='STUDENT'; """).fetchall()
 
if listOfTables == []:
    print('Table not found!')
else:
    print('Table found!')
 
# check if table exists
print('Check if TEACHER table exists in the database:')
listOfTables = cur.execute(
  """SELECT name FROM sqlite_master WHERE type='table'
  AND name='TEACHER'; """).fetchall()
 
if listOfTables == []:
    print('Table not found!')
else:
    print('Table found!')
 
# commit changes
con.commit()
 
# terminate the connection
con.close()

Producción:

Publicación traducida automáticamente

Artículo escrito por riturajsaha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *