Continuando la serie de SQLite con Python
https://fragmentosdecodigo.home.blog/2020/12/09/introduccion-a-sqlite-con-python/
Creamos un nuevo archivo .py y crearemos un nuevo archivo de BD llamado «AdministracionAlumnos»
import sqlite3
conexion=sqlite3.connect("AdministracionAlumnos")
cursor = conexion.cursor()
#instrucción en varias líneas
cursor.execute('''
CREATE TABLE CURSOS (
codigo_curso VARCHAR(4) PRIMARY KEY,
nombre_curso VARCHAR(50),
cupos_curso INTEGER,
horas_curso INTEGER)
'''
)
loscursos=[
("CI01","Python básico",50,36), #CI01 campo clave
("CI02","Java",150,30),
("CI03","C#",250,50),
("CI04","Python intermedio",50,50),
("CI05","Python avanzado",75,100)
]
cursor.executemany("INSERT INTO CURSOS VALUES (?,?,?,?)", loscursos)
conexion.commit()
conexion.close()
Abrimos este archivo con SQLite y vemos el campo definido como PRIMARY KEY:


Probamos hacer la inserción de un nuevo registro. Como la llave primaria del mismo NO existe, lo va a insertar. Modificamos el archivo y lo ejecutamos:
import sqlite3
conexion=sqlite3.connect("AdministracionAlumnos")
cursor = conexion.cursor()
#Lo insertar porque no existe
cursor.execute("INSERT INTO CURSOS VALUES ('CI06','PHP',60,100)")
conexion.commit()
conexion.close()

Si intentamos ingresar un registro con una llave primaria ya existente, se dará el siguiente error:
import sqlite3
conexion=sqlite3.connect("AdministracionAlumnos")
cursor = conexion.cursor()
#No lo inserta porque ya existe
cursor.execute("INSERT INTO CURSOS VALUES ('CI04','JS',40,50)")
conexion.close()

