cronジョブを使用してmysqlテーブルを更新する最良の方法は何ですか?

ameijin

毎日午前5時19分にCSVを受け取ります。CSVの情報は、SQLデータベースのテーブルにデータを入力/更新するために使用されます。

私は3つのテーブルを持っています:

tempVehicle (temporary table, just for holding info), 

vehicle (contains most info, main table), 

and vehicleImages (table linked to vehicle by VIN). 

新しいCSVに含まれていない情報をテーブルから削除し、CSVからテーブルに新しい情報を取得する必要があります。

私はそれをそのように設定しました:

  1. tempVehicleをドロップして、テーブルを完全に拭きます
  2. 新しいテーブル用にtempVehicleを再作成します
  3. CSVデータをtempVehicleにインポートして、一時的な情報ホルダーとして使用します
  4. VehicleImagesテーブルからすべてのデータを削除して、メインテーブル(車両)からアイテムを削除できるようにします
  5. 車両テーブルからすべてのデータを削除します
  6. tempVehicleから車両テーブルに挿入します
  7. CSVから画像リンクを展開してvehicleImagesを更新し、vehicleImagesに「insertignore」を挿入します

合計7つのPHPファイルがあり、それぞれが上記の手順の1つに関連付けられています。これを行ったのは、特定の順序で実行する必要があり、その特定の順序を維持しながらマルチクエリを機能させる方法がわからなかったためです。

完璧なシナリオでは、1つのphpファイルで1つのマルチクエリを使用して設定することをお勧めします。私はこのファイルを毎日実行するためにcronジョブを使用することを計画しており、複数のcronジョブを実行する必要はありません。

したがって、可能であれば、私が回答したい質問は次のとおりです。

  • テーブルをより効率的に更新するためのより良い方法はありますか?

  • そうでない場合、すべてのクエリを1つのマルチクエリに結合することは可能ですか?

他に何か提案があれば、私はオープンです。

ArtisticPhoenix

これは私がすることです

  • 新しいテーブル用に、tempVehicleとtempVehicleImagesを作成します。
  • CSVデータをtempVehicleおよびtempVehicleImagesにインポートして、一時的な情報ホルダーとして使用します
  • tempVehicleの名前をVehicleに変更し、tempVehicleImagesの名前をVehicleImagesに変更します

これにより、既存のテーブルが上書きされると同時に、一時テーブルが削除されます(名前が変更されているため)。

 RENAME TABLE tempVehicle TO vehicle

RENAME TABLE tempVehicleImages TO vehicleImages

また、Alter Tableを使用して、名前を変更した後にインデックスを設定する必要がある場合があります。

私の補足/ペットピーブとして:キャメルケースはテーブルに名前を付けるための私の好ましい方法ではありません、私はVehicleとVehicle_imageを好みます。このように、ケーシングの複数化の問題はありません。

しかし、これは私が物事を行う方法です(しかし、それはあなたのDBです)。

通常のテーブル

  • すべて小文字
  • スペースに下線を付ける
  • 非複数

ジャンクション(ブリッジ)テーブル(多対多の関係)

  • すべて小文字
  • スペースに下線を付ける
  • 複数

あなたが持っていたのであればvehicleimageあなたはジャンクションテーブルを持つことができvehicles_images、たとえば。そうすれば、複数のテーブルを見ると、それがジャンクションテーブル(2つ以上のテーブル名)であることがわかります。それ以外の場合は、そのVehicleImages、VehicleImages、VehiclesImages、VehiclesImage、またはその他の組み合わせかどうかを考える必要はありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

tkinterボタンを使用してブール値を更新する最良の方法は何でしょうか?

分類Dev

MySQLテーブルの更新を確認し、cronジョブを使用してメールを送信する方法

分類Dev

Batchfile:ブール変数を宣言して使用するための最良の方法は何ですか?

分類Dev

jQueryでテーブル行を削除する最良の方法は何ですか?

分類Dev

Java + Spark + SparkSessionを介してCassandraテーブルに行を挿入/更新するための最良の方法は何ですか

分類Dev

Spring-Batchでジョブフローをテストする最良の方法は何ですか?

分類Dev

Pythonを使用してPDFのテーブルに含まれるテキストを抽出するための最良の方法は何ですか?

分類Dev

テーブルからすべての行を削除するAndroidの最良の方法は何ですか

分類Dev

Springを使用してMongoからオブジェクトを取得する最良の方法は何ですか?

分類Dev

Gormのモデルを使用して2つのテーブルを結合する最良の方法は何ですか?

分類Dev

QlikViewでルックアップテーブルを使用する最良の方法は何ですか?

分類Dev

更新時に特定の条件に基づいて別のテーブルを更新するための最良の方法は何ですか?

分類Dev

Java hadoopジョブをdataprocに移行する最良の方法は何ですか

分類Dev

jQueryを使用してJavaScriptオブジェクトとしてselect fromにオプションを追加する最良の方法は何ですか?

分類Dev

AndroidでSQLiteを使用してテーブルを結合する最良の方法

分類Dev

このテーブルを作成する最良の方法は何でしょうか?

分類Dev

Azureストレージノードライブラリを使用して、パーティションキーに属する最新のレコードを取得するための最良の方法は何ですか?

分類Dev

オブジェクトのコレクションを減らしてマージするための最良の方法は何ですか

分類Dev

MySQLテーブルデータをcsvにダンプし、文字エンコードを変換するための最良の方法は何ですか?

分類Dev

繰り返し発生するBLOBデータを抽出して別のテーブルに配置するための最良の方法は何ですか?-SQL

分類Dev

Sparkジョブ実行統計を収集してデータベースに保存するための最良の方法は何ですか

分類Dev

ジョブの実行が停止した場合にUpstartからメール通知を送信する最良の方法は何ですか?

分類Dev

MARAテーブルを更新するための最良の解決策は何ですか?

分類Dev

postgresでは、結合テーブルでANDを実行するための最良の方法は何ですか?

分類Dev

Swiftを使用して、ストレージ用にオブジェクトを暗号化する最良の方法は何ですか?

分類Dev

AntiXSSライブラリを使用して投稿から不正なHTMLコンテンツをフィルタリングする最良の方法は何ですか?

分類Dev

ドライブをパーティション分割するための最良の方法は何ですか?

分類Dev

swiftを使用してカスタムオブジェクトの配列を保存およびロードするための最良の方法は何ですか?

分類Dev

Androidでデータテーブルを作成するための最良の方法は何ですか?

Related 関連記事

  1. 1

    tkinterボタンを使用してブール値を更新する最良の方法は何でしょうか?

  2. 2

    MySQLテーブルの更新を確認し、cronジョブを使用してメールを送信する方法

  3. 3

    Batchfile:ブール変数を宣言して使用するための最良の方法は何ですか?

  4. 4

    jQueryでテーブル行を削除する最良の方法は何ですか?

  5. 5

    Java + Spark + SparkSessionを介してCassandraテーブルに行を挿入/更新するための最良の方法は何ですか

  6. 6

    Spring-Batchでジョブフローをテストする最良の方法は何ですか?

  7. 7

    Pythonを使用してPDFのテーブルに含まれるテキストを抽出するための最良の方法は何ですか?

  8. 8

    テーブルからすべての行を削除するAndroidの最良の方法は何ですか

  9. 9

    Springを使用してMongoからオブジェクトを取得する最良の方法は何ですか?

  10. 10

    Gormのモデルを使用して2つのテーブルを結合する最良の方法は何ですか?

  11. 11

    QlikViewでルックアップテーブルを使用する最良の方法は何ですか?

  12. 12

    更新時に特定の条件に基づいて別のテーブルを更新するための最良の方法は何ですか?

  13. 13

    Java hadoopジョブをdataprocに移行する最良の方法は何ですか

  14. 14

    jQueryを使用してJavaScriptオブジェクトとしてselect fromにオプションを追加する最良の方法は何ですか?

  15. 15

    AndroidでSQLiteを使用してテーブルを結合する最良の方法

  16. 16

    このテーブルを作成する最良の方法は何でしょうか?

  17. 17

    Azureストレージノードライブラリを使用して、パーティションキーに属する最新のレコードを取得するための最良の方法は何ですか?

  18. 18

    オブジェクトのコレクションを減らしてマージするための最良の方法は何ですか

  19. 19

    MySQLテーブルデータをcsvにダンプし、文字エンコードを変換するための最良の方法は何ですか?

  20. 20

    繰り返し発生するBLOBデータを抽出して別のテーブルに配置するための最良の方法は何ですか?-SQL

  21. 21

    Sparkジョブ実行統計を収集してデータベースに保存するための最良の方法は何ですか

  22. 22

    ジョブの実行が停止した場合にUpstartからメール通知を送信する最良の方法は何ですか?

  23. 23

    MARAテーブルを更新するための最良の解決策は何ですか?

  24. 24

    postgresでは、結合テーブルでANDを実行するための最良の方法は何ですか?

  25. 25

    Swiftを使用して、ストレージ用にオブジェクトを暗号化する最良の方法は何ですか?

  26. 26

    AntiXSSライブラリを使用して投稿から不正なHTMLコンテンツをフィルタリングする最良の方法は何ですか?

  27. 27

    ドライブをパーティション分割するための最良の方法は何ですか?

  28. 28

    swiftを使用してカスタムオブジェクトの配列を保存およびロードするための最良の方法は何ですか?

  29. 29

    Androidでデータテーブルを作成するための最良の方法は何ですか?

ホットタグ

アーカイブ