2015-02-10 95 views
1

我試圖運行一個SQL查詢,但有些東西已經搞砸了,我無法得到下面的查詢來檢查數據是否存在或不在指定的表中。無法執行「IF EXISTS」查詢

我的代碼是:

IF EXISTS(SELECT brth_day FROM sms.birthdaycheck WHERE brth_day = '2015-02-10') 
THEN 
    BEGIN 
    UPDATE sms.birthdaycheck SET cnt = 1 WHERE brth_day = '2015-02-10' 
    END 
ELSE 
    BEGIN 
    INSERT INTO sms.birthdaycheck(cnt,brth_day) VALUES (1,'2015-02-10') 
    END 
END IF; 
+0

GETTTING 1064錯誤 – 2015-02-10 06:22:11

+2

不要添加註釋,編輯問題。你的代碼不是PHP。使用正確的標籤。 – 2015-02-10 06:34:44

+0

你正在使用什麼'數據庫引擎? – 2015-02-10 06:35:38

回答

0

編輯溶液:

delimiter ;; 
create procedure XYZ(...parameters...) 
begin 

if exists(
    SELECT brth_day FROM sms.birthdaycheck WHERE brth_day = '2015- 
    02-10') 
then 
    UPDATE sms.birthdaycheck SET cnt = 1 WHERE brth_day = '2015-02-10'; 
else 
    INSERT INTO sms.birthdaycheck(cnt,brth_day) VALUES (1,'2015-02-10'); 
    end if; 

end;; 
+0

我添加了分號更新後插入但同樣的錯誤 – 2015-02-10 06:51:07

+0

請通過此:http://stackoverflow.com/questions/12334026/mysql-stored-procedure-syntax-if-else – 2015-02-10 06:59:27

+0

不能在mysql中工作 – 2015-02-10 07:03:26

-2

在MySQL,如果函數或存儲過程中所使用的控制塊必須的。 所以你需要重寫你的查詢: