Il mio database sqlite3 contiene un vincolo di colonna "fascicolata". L'ho inserito nello schema per la tabella, per evitare di trascurare accidentalmente di utilizzare le regole di confronto necessarie. Tuttavia questo significa che quando si esegue sqlite3
dalla riga di comando e non dal mio codice Python, le regole di confronto a cui si fa riferimento nello schema non sono presenti e non sono in grado di utilizzare i comandi punto.Esegui i comandi sqlite3 "punto" da Python o registra le regole di confronto nell'utilità della riga di comando
sqlite> .import data.txt table_name
Error: no such collation sequence: my_collation
Inoltre, la creazione della connessione da Python, e aggiungendo il confronto richiesto corre in questo problema:
connWithCollation.execute(".import data.txt table_name")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
sqlite3.OperationalError: near ".": syntax error
La funzione execute
sembrerebbe non vuole passare il comando sqlite3 dot attraverso.
Come è possibile eseguire comandi punto sqlite3 quando non sono presenti le funzioni di confronto necessarie? In alternativa, come posso eseguire i comandi sqlite3 dot da Python?
Alcuni comandi sembrano lontani da banali. Come aggiungerebbe intestazioni o scegliere il separatore di colonne? –