IT

MySQL에서 동일한 테이블에 행 삽입

itgroup 2022. 10. 19. 22:11
반응형

MySQL에서 동일한 테이블에 행 삽입

나는 다음과 같이 하고 있다.INSERT쿼리:

INSERT INTO Elements
(EventID, TypeID) 
SELECT EventID, 2
FROM Elements
Where TypeID = 1

즉, 다른 유형과 같은 테이블에 요소 행을 삽입합니다.아이디. 잘 돼.

그러나 이러한 행 중 일부가 이미 존재하는 경우 문제가 발생합니다.TypeID = 2이 경우 생략하겠습니다.INSERT이러한 행에 대해서는, 계속합니다.

INSERT IGNORE이 컬럼에 대한 고유한 정보나 다른 정보가 없기 때문에 사용할 수 없습니다.내가 뭘 할 수 있을까?

여기서 하나의 옵션은 고유한 인덱스를 추가한 다음 다음을 사용하여 삽입을 수행하는 것입니다.INSERT IGNORE ... INTO:

ALTER TABLE Elements ADD UNIQUE unique_index (EventID, TypeID)

INSERT IGNORE INTO Elements (EventID, TypeID) 
SELECT EventID, 2
FROM Elements
WHERE TypeID = 1

이 삽입은 다음과 같은 경우 실패합니다.EventID,TypeID에 이미 존재하는 값의 쌍Elements테이블.

GROUP BY 및 사양에 대해 살펴봅니다.

INSERT INTO Elements
(EventID, TypeID) 
SELECT EventID, 2
FROM Elements
GROUP BY EventID
HAVING MAX(TypeID)=1

언급URL : https://stackoverflow.com/questions/40505697/inserting-rows-in-the-same-table-in-mysql

반응형