2014-04-25 2 views
0

값이 이미 있는지 확인하지 않고 테이블에 값을 추가하려고합니다.IF NOT EXISTS then INSERT

IF NOT EXISTS (
    SELECT series.seriesName 
    FROM series 
    WHERE series.seriesName='Avengers' 
) 
BEGIN 
    INSERT INTO series (seriesName) VALUES 'Avengers' 
END; 

데이터베이스 당신이있어 IGNORE 키워드를 사용할 수 있습니다 우분투

+0

또한 [INSERT IGNORE] (http://stackoverflow.com/a/1361368/314291)를 참조하십시오. – StuartLC

답변

0

에 MySQL의 데시벨입니다 : 이것은 내가 지금까지있는 것입니다. 중요한 것은 당신이 그것을 고유 할 것으로 보인다 seriesName 필드에 고유 키를 생성하는 것입니다

INSERT IGNORE INTO series (seriesName) VALUES 'Avengers' 

: 같은

그것은 볼 수 있었다. INSERT IGNORE 키 값이 이미있는 경우 삽입하지 않습니다. 당신이 것 그런

INSERT IGNORE INTO series (seriesName) VALUES 'Avengers' 
    ON DUPLICATE KEY UPDATE seriesID= LAST_INSERT_ID(seriesID) 

: 당신이 은 (이미 존재) 삽입되지 것을 행 ID (기본 키 값)을 얻을 수있을하려는 경우

, 당신은 다음과 같은 트릭을 할 수 있습니다 행이 삽입되었는지 여부와 상관없이 LAST_INSERT_ID()으로 ID를 가져올 수 있어야합니다.

+0

맞아요, seriesName 필드가 고유해야합니다. 시리즈가 발견되면 seriesID (시리즈 테이블의 기본 키)를 얻을 수 있습니까? – Noosrep

+0

예, 내 업데이트를 참조하십시오. –

+0

고맙습니다. 고맙습니다. – Noosrep