2011-08-18 6 views
1

나는 mysql을 사용하고 있으며, 지금은 MySQL을 사용하고있다. 이것은 쉬운 일일 수도 있지만, 존재하지 않는다면 을 어떻게 실행 하는가? 감사합니다mysql이 존재하지 않는다면

+0

가능한 중복 : http://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysql –

답변

4

어떤 방법 으로든 데이터베이스 전문가가 아닙니다. 그러나 이것은 내가하는 방법입니다.

http://www.somethinghitme.com/2010/05/06/mysql-stored-procedures-if-not-exists/

DECLARE SomeId int; 
    DECLARE CheckExists int; 
    SET CheckExists = 0; 

    SELECT 1 INTO CheckExists from lookup_table WHERE someField = in_SomeParam LIMIT 1; 

    IF (CheckExists > 0) THEN 
     SELECT id INTO SomeId FROM lookup_table WHERE someField = in_SomeParam; 
    ELSE 
     INSERT INTO lookup_table (someField) VALUES(in_SomeParam); 
     SELECT SomeId = LAST_INSERT_ID(); 
    END IF; 
+0

한가지입니다 알고 있어야합니다 select 문에서 필터링 된 레코드 집합을 강제로 불필요하게 계산합니다. 또 다른 접근법은'SELECT 1 INTO CheckExists FROM lookup_table where someField = in_SomeParam LIMIT 1; ' –

+0

@Doug Kress, 고맙습니다. 아주 좋아. – Loktar