私はこのコードをcsvファイルから挿入します。行がデータベースにすでに存在する場合、一部の値が更新されます。私はそれがほしいと思う方法。結果がCSVファイルにないときにテーブルから行を削除
INSERT INTO test_table (`id`,`order_id`,`quantity`,`price`,`order_date`,`shipping_date`)
VALUES ('$orderId', '$quantity', '$price', '$orderDate', '$shippingDate')
ON DUPLICATE KEY UPDATE `order_date` = '$orderDate', `shipping_date` = '$shippingDate'"
ただし、行がcsvにないときは、データベースから削除する必要があります。たとえば :
csvファイル:
order_id quantity price order_date shipping_date
1 10 1.00 2016-10-5 2016-10-6
私はcsvファイルからスクリプトと結果がデータベースに追加されて実行します。しかし次のCSVには次の内容が含まれています:
order_id quantity price order_date shipping_date
2 120 2.00 2016-10-8 2016-10-10
新しい行を追加する必要があります。問題は無く、私の質問は大丈夫です。しかし、order_id 1の行はcsvでなくなっています。その行はデータベースから削除する必要があります。これどうやってするの?これは私のクエリで可能ですか?それとも別のものが必要ですか?
csvが変更されたときにcsvで削除されたものを削除するようにトリガーを追加しようとしましたか?あなたは定期的に任意の言語を使用してそれを行うことができますし、csvをハッシュし、最後のハッシュと比較します。違いについては別のスキャンの場合 – FMashiro
いいえ、私は最善のアプローチが何であるか分かりません。私はcsvをループして、csvではなくdbに行があるかどうかを調べることができます。しかし、それはスマートです、それを行うより良い方法がありますか? – da1lbi3