0
인터넷을 통해 서핑하고 이에 대한 답변을 찾고 답변을 찾을 수 없습니다.where 절을 사용하여 UPSERT하는 방법
업데이트 또는 삽입하기 전에 4 개의 열을 확인하고 싶습니다. INSERT ...를 사용할 수 없습니다. where 절을 허용하지 않기 때문에 DUPLICATE KEY UPDATE를 사용하십시오. 그래서 저는 저에게 만들어진 다음 문장을 사용하려고했습니다.
"SELECT COUNT(id) INTO @count FROM room_prices WHERE (hotel_di = $hotel_id AND room_id = $room_id AND period_id = $periodId AND meal_plan_id = $mealPlanId) "
. "IF @count > 0 THEN "
. "UPDATE room_prices SET price = $price WHERE (hotel_di = $hotel_id AND room_id = $room_id AND period_id = $periodId AND meal_plan_id = $mealPlanId) "
. "ELSE "
. "INSERT INTO room_prices (hotel_id, room_id, period_id, meal_plan_id, price) VALUES ($hotel_id, $room_id, $periodId, $mealPlanId, $price) "
. "END IF"
그러나 이것도 작동하지 않습니다. 이 오류가 발생합니다.
제출하신 질문이 유효하지 않습니다.
이 작업을 수행하는 방법은 무엇입니까? hotel_id
에 고유 인덱스, room_id
, period_id
, meal_plan_id
와
확인 나는 .. 그 전에 내가에 요구하고있다을 다할 것입니다 확실히해라. price 열을 업데이트하기 전에 hotel_id, room_id, period_id, meal_plan_id 열을 모두 확인합니까? – Yasitha
@ 야시 타. . . 예, 네 개의 열에 고유 색인이있는 경우 –
내 경우 hotel_id의 room_id 인 meal_plan_id는이 테이블의 고유 필드가 아닙니다. 그래서 이것은 나를 위해 일하지 않을 것입니다. – Yasitha