Comment puis-je vérifier dans SQLite, si une table existe?

Comment puis-je, de manière fiable, vérifiez dans SQLite, que l'utilisateur table existe?

Je ne demande pas fiable façons, comme vérifier si un "select *" sur le tableau retourné une erreur ou pas (est-ce vraiment une bonne idée?).

La raison en est comme ceci:

Dans mon programme, j'ai besoin de créer, puis de renseigner les quelques tables si elles n'existent pas déjà.

Si elles existent déjà, j'ai besoin de mettre à jour des tables.

Dois-je prendre un autre chemin au lieu de signaler que les tableaux en question ont déjà été créés à - dire, par exemple, par la création d'/mettre/réglage d'un certain drapeau dans mon programme d'initialisation/paramètres du fichier sur le disque ou quelque chose?

Ou est-ce que mon approche de sens?

  • SQLite va lever une exception si la table dans une de sélectionner n'existe pas. Il n'y a tout simplement pas besoin de plus de fantaisie de travail.
  • il sera, mais il en sera de n'importe quel nombre d'autres choses. C'est un peu comme voir si cet arbre est vraiment là par la conduite de l'avant avec vos yeux fermés, vous découvrirez une façon ou de l'autre 🙂
  • bel exemple, mais un peu effrayant, surtout si la voiture de ma voiture...
  • Je ne sais pas ce qui est le sqlite convention, mais il est plus pythonic demander pardon que demander la permission. c'est à dire d'intercepter l'exception au lieu d'utiliser un conditionnel.
  • Maintenant, la question n'implique pas de Python, mais en supposant qu'il l'a fait, l'erreur est un générique sqlite3.OperationalError, de sorte que vous avez à analyser le message d'erreur afin de vous assurez qu'il est par exemple "table TABLE_NAME existe déjà" message lorsque vous créez une table, et si non, sur-relancer l'erreur et je pense que il n'ya aucune garantie que le libellé de l'erreur ne change pas.
InformationsquelleAutor PoorLuzer | 2009-10-21