7

今、私はこの声明を持っています

DELETE FROM sqlite_sequence where name = 'table_name';

ほとんどの場合は問題なく動作しますが、sqlite_sequenceテーブルが作成されていない場合があるため、戻ってきます

no such table: sqlite_sequence

テーブルが存在する場合にのみ削除を行うステートメントが必要です。テーブルが存在するかどうかを教えてくれるこのステートメントを見つけました

SELECT name FROM sqlite_master WHERE type='table';

しかし、これまでのところ、削除文とうまく組み合わせることができませんでした

4

1 に答える 1

6

もちろん、テーブルの存在チェックには名前が含まれている必要があります

SELECT count(*) FROM sqlite_master WHERE type='table' AND name='table_name';

ただし、呼び出し元のアプリケーションから別のステートメントで実行する必要があります。つまり、上記を実行し、ブール値としてのカウント (当然 1 = true、0 = false) に基づいて、DELETEステートメントの実行に進むことができます。

于 2012-12-05T17:52:32.387 に答える