J'ai une question simple: Comment faire pour supprimer tous les index d'une table sqlite? J'ai plusieurs index créés avec un nom aléatoire.comment faire pour supprimer tous les index d'une table sqlite
Cordialement,
Pentium10
J'ai une question simple: Comment faire pour supprimer tous les index d'une table sqlite? J'ai plusieurs index créés avec un nom aléatoire.comment faire pour supprimer tous les index d'une table sqlite
Cordialement,
Pentium10
Je ne suis pas au courant que vous pouvez supprimer tous les index en une seule commande - OMI vous devez déposer chacun par son nom. Voir aussi: http://www.sqlite.org/lang_dropindex.html En outre, vérifier pour des informations supplémentaires: Drop all tables command
Pour obtenir tous les noms d'index dans une base de données
SELECT name FROM sqlite_master WHERE type == 'index'
Pour une table spécifique:
SELECT name FROM sqlite_master WHERE type == 'index' AND tbl_name == 'table Name'
Ensuite, dans votre langue, répéter les résultats et les laisser tomber
FOR x IN RESULTSET
SQL = "DROP INDEX " & X
#!/bin/bash
DB=your_sqlite.db
TABLE="some_table"
INDEXES="$(echo "SELECT name FROM sqlite_master WHERE type == 'index' AND tbl_name = '$TABLE;" | sqlite3 $DB)"
for i in $INDEXES; do
echo "DROP INDEX '$i';" | sqlite3 $DB
done
Assurez-vous qu'aucun autre processus accède à la base de données, alors que vous appelez ce script, ou si c'est pas possible d'ajouter
PRAGMA busy_timeout=20000;
dans chaque echo
que vous envoyez à la base de données
J'ai besoin de supprimer des index de une table seulement, pas tous de la base de données. – Pentium10