2012-08-28 59 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 assettracker.register(30001,'Phoebe','C','Gojocco','Female',08,20,1993,654324,09166394754,'[email protected]' ) – princessbubblegum

+0

員工表中已存有員工編號。查詢必須檢查數據輸入是否存在於表中。 – princessbubblegum

+0

然後刪除**不**。只需使用IF EXISTS語法。 – adatapost