- - PR -
検索、削除の一般的手法を教えてください。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-08-18 17:14
SQL初心者です。
テーブルAから不要なレコード検索しテーブルAからそのレコードを削除したいのですが 一般的な手法を教えていただけないでしょうか。 (一度検索するのは確認のため) 環境 OS windows XP 開発言語 VB6 database mysql 今はこのようにしています。 'データベースを開く Dim abc As New ADODB.Connection Dim record As New ADODB.Recordset abc.ConnectionString = ----------- abc.Open '不要なレコード抽出 sql=select ------------ Set record = abc .Execute(sql) Do Until record .EOF 名前(配列)=record!名前 loop imax=配列の最大 for i=0 to imax 'delet sql=delete ---------- where名前=名前(i) next i 配列処理は無駄のように思えるのですが一般的にどのようにされているのでしょうか。 一度DBを閉じ、再度開かれているのでしょうか。 |
|
投稿日時: 2006-08-18 17:52
selectで取れたものを全部削除なら・・・
selectのwhere句をdeleteのwhere句にすればどうです? 後、ここはJavaです |
|
投稿日時: 2006-08-18 17:59
すみませんJavaとはきずきませんでした。
ファイルにdeleteの履歴をつくらないといけないので 一度selectして抽出したものを書き込みたかったのです。 |
|
投稿日時: 2006-08-19 13:28
DB製品にもよるでしょうし一般的にどうなるかはよくわかりませんが…。
SELECT FOR UPDATE で行単位でロックを掛けて 該当行をDELETEするようにしないとマルチスレッド下で バグが発生するんじゃないかなぁ。 SELECTした後、DELETEする前のタイミングで 他のスレッドがINSERTとかしていると…。 DB板にいけば詳しい方の話をきけるのではないでしょうか。 (どういう理由で板を間違えたのかが気になる…) |
|
投稿日時: 2006-08-19 13:48
すみません。
DB板で質問してみます。 |
1