Incremento automático en clave principal compuesta – Sqlite3 + Python

Tengo un codigo asi

c.execute('CREATE TABLE IF NOT EXISTS base (ID INTEGER NOT NULL, col2 TEXT NOT NULL, col3 INTEGER, PRIMARY KEY(ID, col2))') 

Este código me da una excepción sqlite3.IntegrityError aunque estoy muy seguro de que estoy escribiendo el registro por primera vez.

Así que lo intenté

 c.execute('CREATE TABLE IF NOT EXISTS base (ID INTEGER, col2 TEXT, col3 INTEGER, PRIMARY KEY(ID, col2))') 

Esto inserta la multa de la fila en la tabla base PERO, la columna ID no se incrementa automáticamente.

¿Que puedo hacer? ¿Alguna idea?

En sqlite, solo se obtiene el comportamiento de autoincremento cuando solo una columna de enteros es la clave principal. Las teclas compuestas impiden que el autoincremento tenga efecto.

Puede obtener un resultado similar definiendo id como la única clave principal, pero luego agregando una restricción única adicional en id, col3 .

Si eso todavía no es lo que usted desea (por ejemplo, las identificaciones no necesitan ser únicas en absoluto), probablemente tendrá que usar un disparador para hacer que el autoincremento funcione.