Continuando con la serie de SQLite y Python:

https://fragmentosdecodigo.home.blog/2020/12/09/introduccion-a-sqlite-con-python/

https://fragmentosdecodigo.home.blog/2020/12/09/primary-key-con-sqlite-en-python/

Creamos un nuevo archivo llamado sqlite4.py con el siguiente código:

import sqlite3

conexion=sqlite3.connect("AdministracionAlumnos2")

cursor = conexion.cursor()

cursor.execute('''
    CREATE TABLE CURSOS (
    id_curso INTEGER PRIMARY KEY AUTOINCREMENT,
    nombre_curso VARCHAR(50),
    cupos_curso INTEGER,
    horas_curso INTEGER)
    '''
    )

loscursos=[
        ("Python básico",50,36), #eliminanos el dato del campo 1
        ("Java",150,30),
        ("C#",250,50),
        ("Python intermedio",50,50),
        ("Python avanzado",75,100)
        ]

#Sustituir el primer valor de VALUES por NULL
cursor.executemany("INSERT INTO CURSOS VALUES (NULL,?,?,?)", loscursos)
conexion.commit()

conexion.close()

Al ver el archivo «AdministracionAlumnos2» con SQLite, encontramos el campo auto incrementable:

Creamos un segundo archivo llamado sqlite5.py con el siguiente código para probar el campo autoincrementable:

# Va de la mano con el archivo sqlite4.py, ya que este 
# inserta en la tabla CURSOS creada en el archivo anterior
# pero SIN DEFINIR el valor al código del campo id_curso
    
import sqlite3
conexion=sqlite3.connect("AdministracionAlumnos2")
cursor = conexion.cursor()
loscursos=[
    ("Python básico",50,36),
    ("Java",150,30),
    ("C#",250,50),
    ("Python intermedio",50,50),
    ("Python avanzado",75,100)
]
cursor.executemany("INSERT INTO CURSOS VALUES (NULL,?,?,?)", loscursos)
conexion.commit()
conexion.close()

El resultado en la BD: