0

これと同等の機能を実行する SQLite (C#.NET 用) の SQL コマンドはありますか?

DELETE * FROM * WHERE id='idnumber'

4

4 に答える 4

4

いいえ、ありません。

1 つの方法は、メタデータ テーブルにクエリを実行する小さなスクリプトを作成て、テーブルごとに 1 つずつ、一連​​の個々のdeleteステートメントを含む別のスクリプトを作成することです。

例は次のとおりです (すべてのテーブルに ID 列があると仮定します)。

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

これにより、各テーブルのステートメントが生成さdeleteれ、スクリプトとしてキャプチャして実行できます。

しかし、一般的に、データベース開発者がテーブルの名前を知っていることは良い考えです:-)

于 2012-04-14T13:58:55.903 に答える
0

私が動的プログラムの目的で使用する方法は、テーブル名の配列を作成し、それらをループすることです。

例えば

迅速

var array = ['table1','table2','table3']

for item in array

{
    
var stringToDeleteTables:String = "DELETE FROM \\(item) [optional where clause]"

//run the command on the database

}

これが誰かに役立つことを願っています。サインアウトや検索データの消去などに最適です。配列を拡張して関数として呼び出すこともできます。

于 2021-09-17T18:40:30.893 に答える
-1

あなたはそれを試すことができます:

//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;

お役に立てば幸いです。

于 2012-04-14T14:01:15.513 に答える