2012-08-28 2 views
0

직원 ID 입력이 데이터베이스에 이미 있는지 확인하는 경우 저장 프로 시저를 확인하려고합니다. 그것이 있으면 그/그녀의 개인 정보의 삽입이있을 것입니다. 내 코드는 다음과 같습니다. 해결책이 필요합니다. 나는 SQL 쿼리에서 전문가가 아니다.직원 ID가 등록 승인을 위해 존재하는지 확인하십시오.

DELIMITER $$ 

CREATE DEFINER=`root`@`localhost` PROCEDURE `register`(

     IN EmployeeID INT(11), 
     IN GivenName VARCHAR(20), 
     IN MI VARCHAR(10), 
     IN Surname VARCHAR(20), 
     IN Gender VARCHAR(6), 
     IN month VARCHAR(2), 
     IN day VARCHAR(2), 
     IN year VARCHAR(4), 
     IN Landline INT(8), 
     IN Cellphone BIGINT(20), 
     IN EMail VARCHAR(30)) 


BEGIN 

SELECT emp_id FROM `assettracker`.`employee`; 

IF (empid=EmployeeID) THEN 

INSERT INTO `assettracker`.`employee` (emp_fname, emp_midname, emp_surname, emp_gender, 
emp_bday,emp_phone, emp_cellphone, emp_email) 
        VALUES(GivenName, MI, Surname, Gender, CONCAT(month,'/',day,'/',year), 
             Landline, Cellphone, EMail); 

ENDIF; 

END 

답변

0

emp_id을 선택하는 동안 where 절을 추가하십시오.

IF not EXISTS (SELECT emp_id FROM `assettracker`.`employee` Where emp_id=EmployeeID) Then 
    //insert statement 
END IF; 
+0

오류없이 작동했습니다! 영향을받은 행은 0 개였습니다. 여기에 call 문이 있습니다.call assettracker.register (30001, 'Phoebe', 'C', 'Gojocco', 'Female', 08, 20, 1993, 654324, 09166394754, '[email protected]') – princessbubblegum

+0

employee 테이블에 이미 저장된 사원 번호가 있습니다. 쿼리는 데이터 입력이 테이블에 있는지 확인해야합니다. – princessbubblegum

+0

그런 다음 ** ** 제거하십시오. IF EXISTS 구문을 사용하십시오. – adatapost

관련 문제