기본 키가 중복 인 경우 UPDATE 대신에 간단한 INSERT 쿼리를 사용해야합니다. MySQL에서는 이것이 더 쉬워 보입니다. 오라클에서는 MERGE를 사용해야 할 것 같습니다.INSERT에서 UPDATE가 Oracle의 중복 기본 키입니까?
MERGE에서 찾을 수있는 모든 예제에는 "원본"테이블과 "대상"테이블이있었습니다. 필자의 경우 소스와 대상은 같은 테이블입니다. 내 자신의 쿼리를 작성하는 예제를 이해할 수 없었습니다.
유일한 방법이 아니면 더 좋은 해결책이 있습니까?
INSERT INTO movie_ratings
VALUES (1, 3, 5)
그것은 기본적으로이 그리고 기본 키 때문에 업데이트가이 같은 것, 처음 2 개 값이다 : 나는 트리거를 사용하여 생각
UPDATE movie_ratings
SET rating = 8
WHERE mid = 1 AND aid = 3
자동으로 UPDATE 문을 실행할 것이라고 할 때 INSERT가 호출되었지만 기본 키가 중복 된 경우에만 호출됩니다. 이런 식으로하는 데 문제가 있습니까? 방아쇠에 대한 도움이 필요합니다. 그러나 이해하는데 어려움을 겪고 있습니다.
이와 같은 예에서는 INSERT에서 열 이름의 목록 (선택 사항)을 사용하여 충분한 테이블 구조를 제공하는 것이 좋습니다. 어쩌면 MySQL에서 수행 된 작업을 보여 주면 사람들은 자신이 무엇을했는지 보게 될지도 모릅니다. 아니면 아마도 내 호기심/게으름 일 것입니다. –
테이블 구조는 implict, mid (int), aid (int), rating (int)입니다. –