programing

데이터를 삽입하고 특정 열을 확인하여 중복을 방지합니다.

muds 2023. 11. 2. 22:08
반응형

데이터를 삽입하고 특정 열을 확인하여 중복을 방지합니다.

여러 행의 데이터를 삽입하려고 하는 로컬 db가 있지만 중복을 원하지 않습니다.삽입하려는 두 번째 db가 없습니다.sql 파일이 있습니다.이 구조는 제가 삽입할 DB에 대한 것입니다.

(db)artists
    (table)names->     ID  |  ArtistName  |  ArtistURL  |  Modified

삽입하려고 합니다.

INSERT names (ArtistName, Modified) 
VALUES (name1, date),
       (name2, date2),
       ...
       (name40, date40)

문제는 SQL을 사용하여 삽입하고자 하는 이 데이터 목록에 특정 열을 확인하여 데이터를 삽입하고 중복을 방지하는 방법입니다.

뭘 복제해요?중복 이름?중복 행?나는 의심하지 않을 것입니다.ArtistName.

  1. 갖고 있다UNIQUE(ArtistName)(또는PRIMARY KEY테이블위에.
  2. 사용하다INSERT IGNORE대신에IGNORE.

(아니오)LEFT JOIN, 등)

저는 완전히 새로운 테이블에 제 모든 가치를 삽입함으로써 @Hart CO의 조언을 조금이나마 따르게 되었습니다.그런 다음 SQL 문을 사용했습니다.

SELECT ArtistName
FROM testing_table
WHERE !EXISTS 
(SELECT ArtistName FROM names WHERE 
testing_table.ArtistName = testing_table.ArtistName)

이것은 이름표가 아닌 제 데이터에 있는 모든 아티스트 이름을 알려주었습니다.그런 다음 sql 파일로 내보내고 INSERT를 약간 조정하여 해당 데이터와 함께 이름 테이블에 삽입했습니다.

INSERT IGNORE INTO `names` (ArtistName) VALUES
*all my values from the exported data*

(ArtistName)에서 반환된 데이터를 가질 수 있는 위치.예를 들어 (ArtistName, ArtistUrl, Modified).내보내기에서 반환된 값이 3개의 값을 가지면 됩니다.

이것은 아마도 가장 효율적이지는 않겠지만, 제가 하려는 일에는 효과가 있었습니다.

언급URL : https://stackoverflow.com/questions/39731012/insert-data-and-avoid-duplication-by-checking-a-specific-column

반응형