Siguiendo con la serie de SQLite con 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/
https://fragmentosdecodigo.home.blog/2020/12/09/campos-auto-incrementables-en-sqlite-con-python/
Creamos un nuevo archivo llamado sqlite6.py y definimos la conexión BD como se describe a continuación:
#CLAUSULA UNIQUE: Impide que la información de un campo se repita en la BD
import sqlite3
conexion=sqlite3.connect("AdministracionAlumnos3")
cursor = conexion.cursor()
cursor.execute('''
CREATE TABLE CURSOS (
id_curso INTEGER PRIMARY KEY AUTOINCREMENT,
codigo_curso VARCHAR(10) UNIQUE,
nombre_curso VARCHAR(50),
cupos_curso INTEGER,
horas_curso INTEGER)
'''
)
loscursos=[
("CODCUR001","Python básico",50,36),
("CODCUR002","Java",150,30),
("CODCUR003","C#",250,50),
("CODCUR004","Python intermedio",50,50),
("CODCUR005","Python avanzado",75,100)
]
cursor.executemany("INSERT INTO CURSOS VALUES (NULL,?,?,?,?)", loscursos)
conexion.commit()
conexion.close()
Al abrirlo en SQLite vemos lo siguiente:


Creamos un segundo archivo llamado sqlite7.py con el código necesario para probar la clausula UNIQUE:
import sqlite3
conexion=sqlite3.connect("AdministracionAlumnos3")
cursor = conexion.cursor()
loscursos=[
("CODCUR006","Python básico",50,36),
("CODCUR007","Java",150,30),
("CODCUR008","C#",250,50),
("CODCUR001","Python intermedio",50,50), #debe provocar un error UNIQUE
("CODCUR009","Python avanzado",75,100)
]
cursor.executemany("INSERT INTO CURSOS VALUES (NULL,?,?,?,?)", loscursos)
conexion.commit()
conexion.close()
En consola se puede ver el mensaje de error provocado:

A nivel de BD no se actualizaron los datos por este error.
