検索

ホームページ  >  に質問  >  本文

タイトルを次のように書き換えます。MySQL のテーブル A にデータがすでに挿入されているか、挿入されていない場合は、テーブル A の ID をテーブル B に挿入します。

私は約 1 年間コーディングをしており、現在ポートフォリオ (レシピ Web サイト) の作成に取り組んでいますが、行き詰まっていて、どのように進めればよいかわかりません。

私の問題は、テーブル A (挿入されているかどうかに関係なく) から自動インクリメントされる材料 ID をテーブル B に挿入する方法を見つける必要があることです。

レシピが送信されると、次の MySQL クエリを使用して、材料テーブルに送信された材料があるかどうかを確認するコードを設定します。

リーリー

私は最初、挿入後のトリガーを使用しようとしましたが、成分がすでにデータベースに存在し、新たに挿入されていない場合、このアプローチは機能しないことに気付きました。したがって、私のアプローチはリファクタリングする必要があるかもしれないと思います。

私の目標は、レシピを送信するときに、次のコードを使用して材料を配列にコンパイルすることです:

リーリー

次に、MySQL クエリを実行します。成分がまだ存在しない場合は、テーブル A に挿入します。すでに存在する場合は、無視します。これら 2 つのオプションの後、材料の自動インクリメント ID がテーブル B に挿入されます。問題をさらに複雑にするために、recipe_id はテーブル C (その他のさまざまなレシピ情報を含む) から抽出され、amount はユーザーが入力フィールドに入力した値 (配列に変換)、unit_id はユーザーによって選択されたものになります。ユーザーおよびデータベースで事前定義された測定単位の事前定義セットに対応する単位のセット (配列にも変換されます)。これら 2 つの配列は、上記の JavaScript コードを使用して配列に作成されます。

表 A は次のとおりです:

###要素### 1 ###砂糖### ###小麦粉### 表 B は次のとおりです:
id
2
id

レシピ_id ###額### ユニットID154 これがより良いアプローチであることを願っていますが、if ステートメントの false 結果を @checkIngredientFalse に実行してから
成分_id 1 45
1 2 76 4
2 更新方法
@checkIngredientTrue

を実行する方法を理解するのに苦労しています。難しいです。これにより、材料の id

recipe_ingredients

ingredient_id テーブル列に追加されるためです。 レシピ.js リーリー routerRecipes.js ああああ

P粉716228245P粉716228245449日前541

全員に返信(1)返信します

  • P粉366946380

    P粉3669463802023-09-12 10:45:04

    レシピの各材料:

    • 材料から ID を選択 WHERE 材料 = ?
    • 上記のクエリが成功すると、ingredient_id は返された id
    • に設定されます。
    • 失敗した場合は、INSERT INTO 材料 (成分) VALUES (?) を実行し、ingredient_id を割り当てられた自動インクリメント ID
    • に設定します。
    • 上記の手順で見つかった ingredient_id 値を使用して、INSERT INTO Recipes
    リーリー

    返事
    0
  • キャンセル返事