Un programme sur lequel je travaille peut importer des données d'un autre programme (pas le nôtre) qui utilise des fichiers sqlite. J'ai besoin d'indices qui n'existent pas déjà dans les fichiers sqlite, mais je ne veux pas avoir à modifier les données de quelqu'un juste pour les laisser l'importer. L'index est utilisé par de nombreuses requêtes. Ainsi, je voudrais créer un indice de température qui ne vit que tant que la connexionEst-il possible de créer un index temporaire en sqlite?
Je l'ai vu la syntaxe suivante évidente référence (dans des listes de diffusion des messages de 2003 ...):
$ sqlite3 thirdparty.sqlite
SQLite version 3.7.4
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> CREATE TEMP INDEX foo ON SomeTable(SomeCol);
Error: near "INDEX": syntax error
Est-il possible de faire quelque chose comme ça? À l'heure actuelle, nous faisons juste une copie du fichier avant l'importation, mais ces fichiers peuvent être assez volumineux, ce qui est plutôt peu pratique.
Si je peux suggérer (pour l'avenir, comme la question est déjà un peu ancienne), l'ajout et l'index, la suppression de l'index et l'exécution de VACUUM, ne modifieraient en aucune façon la base de données. Il y a également très peu de risque de corruption des données, ce qui peut se produire uniquement si votre disque a des secteurs défectueux. –