2 votes

Comment puis-je lister les tables/vues temporaires dans SQLite ?

J'ai une fonction qui tente de supprimer une vue et de la reconstruire lorsqu'une nouvelle base de données est attachée à la connexion. Le problème (ou plutôt le désagrément) est que la première fois, elle tente de supprimer une vue inexistante. Comme il y a une table permanente avec le même nom que la vue, je reçois l'erreur sqlite : use DROP TABLE to delete table Albums . Par conséquent, je voudrais interroger la base de données pour vérifier si la vue existe avant de tenter de la supprimer.

Remarque : la requête actuelle utilise déjà DROP VIEW IF EXISTS et cela ne résout pas le problème. J'ai également vérifié sqlite_master et il ne semble pas y avoir de références à des tables/vues temporaires.

2voto

CL. Points 46451

En main y temp Les bases de données sont distinctes, vous pouvez donc simplement utiliser le nom de la base de données :

CREATE TABLE Albums(x);
CREATE TEMPORARY VIEW Albums AS SELECT * FROM Albums;
DROP VIEW IF EXISTS temp.Albums;
DROP VIEW IF EXISTS temp.Albums;

Objets temporaires sont gérés dans sqlite_temp_master .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X