2012-04-14 7 views
0

Existe-t-il une commande SQL dans SQLite (pour C# .NET) qui effectue l'équivalent de cela?Supprimer de toutes les tables dans SQLite

DELETE * FROM * WHERE id='idnumber'

+0

duplication possible de [Sqlite: comment réinitialiser toutes les tables de base de données?] (Http://stackoverflow.com/questions/3600075/sqlite-how-do-i-reset-all-database-tables) –

+0

@juergend Cette question concerne la suppression d'un seul enregistrement de toutes les tables plutôt que de tous les enregistrements de toutes les tables. – CJxD

+0

Ce n'est pas le cas. Ce n'est rien comme ça. Vous devriez essayer de lire une question avant de la rejeter. –

Répondre

2

Non, il n'y a pas.

Une façon est d'écrire un petit script pour query metadata tables-créer un autre script avec une série de déclarations individuelles delete, un par table.

Un exemple pourrait être (en supposant toutes les tables avait une colonne ID):

select 'delete from ' || name || ' where ID = 42' 
from sqlite_master 
where type = 'table' 

Cela générerait une déclaration delete pour chaque table que vous pouvez ensuite capturer et exécuter un script.

Mais il est généralement une bonne idée pour les développeurs de bases de données de connaître les noms de leurs tables :-)

+0

Je connais les noms, mais j'ai beaucoup de tables = P Quoi qu'il en soit, comment se fait ce 'petit script'? – CJxD

+0

@CJxD, j'ai ajouté un petit extrait qui devrait être un bon point de départ. Ce n'est pas testé, mais vous devriez avoir l'idée. – paxdiablo

+2

Cela semble assez douteux, j'aime ça! – CJxD

-1

Vous pouvez utiliser l'essayer:

//You can do it with the following DANGEROUS commands: 

PRAGMA writable_schema = 1; 
delete from sqlite_master where type = 'table'; 
PRAGMA writable_schema = 0; 



//you then want to recover the deleted space with 
VACUUM 

//and a good test to make sure everything is ok 
PRAGMA INTEGRITY_CHECK; 

espère que ce sera utile pour vous.

+2

Cela va supprimer les tables, oui? Je pense que l'OP veut juste supprimer toutes les lignes avec un ID correspondant de toutes les tables. Donc probablement pas _that_ utile :-) – paxdiablo

+0

est-ce votre blog? http://myratnest.blogspot.com/2010/08/want-to-delete-all-tables-in-sqlite.html –

+0

ou votre réponse? http://stackoverflow.com/questions/525512/drop-all-tables-command –

Questions connexes