連載「生成AI×プログラミング」のこれまでの回はこちらを参照。
SQLiteファイルから1レコードを削除する方法(1)
前回は、ChatGPTを活用して、SQLiteファイルの中身を見て、想定外のデータが追加されていることを確認した。その結果、デバッグする必要があったので同じデータが追加されて3重状態になっていた。最終的にはアプリで削除すればよいが、それまではDB Browser for SQLiteから削除してしまうと簡単に思える。
では、どのように操作すればよいのかをChatGPTに聞いてみよう。
DB Browser for SQLiteにおいて特定のテーブルから1レコードを削除する方法を教えてください。
ChatGPTの回答をまとめると、次のようになる。
DB Browser for SQLiteを開く
データベースファイル(.sqliteや.dbなど)を開く
SQLタブを選択する
メニューバーから「SQL」タブを選択する。これにより、SQLクエリを直接実行することができる。
削除クエリを作成する
削除したいレコードを特定するためのSQL DELETE文を作成する。例えば、テーブル名がusersで、IDが1のレコードを削除したい場合は「DELETE FROM users WHERE id = 1;」のようなクエリを書く。この例では、usersというテーブルからidが1であるレコードが削除される。実際のテーブル名や条件に応じて適切に置き換える。
クエリの実行
SQLクエリを入力したら、実行するために「実行」ボタンをクリックする(またはCtrl+Enterを押す)。
変更を保存する
レコードが正常に削除されたら、変更を保存する。メニューバーの「ファイル」→「データベースを保存」を選択して、データベースファイルを上書き保存する。
以上の操作により、特定のテーブルから1レコードが削除される。確認のために、削除操作を行う前にデータベースのバックアップを取ることをお勧めする。
SQLiteファイルから1レコードを削除する方法(2)
上記の方法は悪くはないのだが、削除にSQLを使っている。Pythonから操作を行う際はSQLを使う必要があるが、ここではGUIからもっと手軽に作業したい。そこで、SQLを使わない方法はないかを聞いてみる。
SQLを使うことなく削除する方法はありませんか?
ChatGPTの回答をまとめると次のようになる。
テーブルを表示する
DB Browser for SQLiteを開き、対象となるテーブルを選択して表示する。
レコードを選択する
削除したいレコードをテーブル内で見つける。一般的に、テーブルが小さい場合や特定のレコードが明確な場合に有効。
レコードを右クリックして削除する
テーブル内で削除したいレコードを右クリックする。すると、コンテキストメニューが表示される。
削除を選択する
コンテキストメニューから「削除」または「Delete」を選択する。これにより、選択したレコードが削除される。
変更を保存する
削除が完了したら、メニューバーの「ファイル」→「データベースを保存」を選択して、変更をデータベースファイルに保存する。
この方法は、GUIを使って直感的に特定のレコードを削除する手段である。SQLを書かずに済むので、特に単純な操作や確認作業に便利といえる。
さらに、GUIから削除する方法もあるように見える。あとで、それを試してみよう。