>  Q&A  >  본문

제목을 다음과 같이 다시 작성하십시오. MySQL의 테이블 A에 데이터가 이미 삽입되었거나 삽입되지 않은 경우 테이블 A의 ID를 테이블 B에 삽입하십시오.

1년 정도 코딩을 했고 현재 포트폴리오(레시피 웹사이트) 작업을 하고 있는데 막혀서 어떻게 진행해야 할지 모르겠습니다.

내 문제는 테이블 A(삽입 여부에 관계없이)의 자동 증가 성분 ID를 테이블 B에 삽입하는 방법을 찾아야 한다는 것입니다.

레시피가 제출되면 다음 MySQL 쿼리를 사용하여 재료 테이블에 제출된 재료가 있는지 확인하는 코드가 설정되어 있습니다.

으아아아

처음에는 삽입 후 트리거를 사용해 보았지만, 성분이 데이터베이스에 이미 존재하고 새로 삽입되지 않은 경우에는 이 접근 방식이 작동하지 않는다는 것을 깨달았습니다. 그러므로 내 접근 방식에 대한 리팩토링이 필요할 수도 있다고 생각합니다.

내 목표는 레시피를 제출할 때 다음 코드를 사용하여 재료를 배열로 컴파일하는 것입니다.

으아아아

그런 다음 MySQL 쿼리를 실행하고 테이블 A에 성분이 없으면 테이블 A에 삽입하고, 이미 있으면 무시하세요. 이 두 가지 옵션 뒤에는 재료의 자동 증가 ID가 테이블 B에 삽입됩니다. 문제를 더 복잡하게 만들기 위해 recipe_id는 테이블 C(다양한 레시피 정보 포함)에서 추출되고 amount는 사용자가 입력 필드에 입력한 값(배열로 변환됨)이 되며 unit_id는 사용자가 선택한 값이 됩니다. 사용자 및 데이터베이스에 사전 정의된 사전 정의된 측정 단위 세트에 해당하는 단위 세트입니다(또한 배열로 변환됨). 이 두 배열은 위의 JavaScript 코드를 사용하여 배열로 만들어집니다.

테이블 A는 다음과 같습니다.

id 성분
1 설탕
2 밀가루

테이블 B는 다음과 같습니다

id recipe_id 금액 unit_id ingredient_id
1 45 1 5 1
2 76 4 4 2

업데이트된 방법

이것이 더 나은 방법이길 바라지만, 테이블 열에서 if 문의 잘못된 결과를 실행@checkIngredientFalse,然后执行@checkIngredientTrue方面遇到了困难,因为这将会将ingredient的id添加到recipe_ingredientsingredient_id하게 만드는 방법을 찾는 데 어려움을 겪고 있습니다.

recipe.js

으아아아

routerRecipes.js

으으으으

P粉716228245P粉716228245426일 전531

모든 응답(1)나는 대답할 것이다

  • P粉366946380

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

    레시피의 각 재료에 대해:

    • SELECT id FROM ingredients WHERE ingredient = ?
    • 위 쿼리가 성공하면 ingredient_id를 반환된 ID로 설정합니다
    • 실패할 경우 INSERT INTO Ingredients (ingredient) VALUES (?)를 실행하고 INSERT INTO ingredients (ingredient) VALUES (?),并将ingredient_id를 할당된 자동 증가 ID로 설정하세요
    • INSERT INTO 레시피에는 위 단계에서 찾은 ingredient_id值进行INSERT INTO recipes 값을 사용하세요
    으아악

    회신하다
    0
  • 취소회신하다