2012-05-24 2 views
0

만족 스러울 때 if 문을 종료하지만 그렇지 않은 경우 저장 프로 시저에서 else를 실행하는 방법은 무엇입니까? 내가 만약 if 문 후에 끝내는 시도조건이 만족되면 IF 문이 중단됩니다.

:

IF EXISTS (SELECT * FROM `db`.`tbl` WHERE email = "[email protected]") END IF; 
ELSE INSERT INTO `db`.`tbl` (email) VALUES ("[email protected]"); END IF; 

하지만이 작동하지 않았다. 이 행이 이미 존재하지 않는 경우 삽입하는 경우

+0

나는 그것을 얻지 못했다.) – superM

답변

1

왜 삽입을 무시 사용하지?

INSERT IGNORE INTO `db`.`tbl` SET `email`= '[email protected]'; 

이메일에 고유 색인을 만들어야합니다.

일부 참조 용으로 here을 확인하십시오.

+0

'삽입 무시'와 함께 기본 키를 사용할 필요가 없습니까? – RSM

+0

이것은 MySQL의 유일한 기능입니다. 그러나 대부분의 데이터베이스는 비슷한 것을 가지고 있습니다. – nunespascal

+0

아니요, 고유 키로 충분합니다. – nunespascal

0

, 당신은이를 사용 말아야 :

INSERT INTO `table` (value1, value2) 
SELECT 'stuff for value1', 'stuff for value2' FROM `table` 
WHERE NOT EXISTS (
    SELECT * FROM `table` 
    WHERE value1='stuff for value1' AND value2='stuff for value2' 
);