2015-07-20 79 views
1

我想創建一個將用戶插入表的過程,但它也應該檢查用戶是否18歲。我使用if聲明(p_datum_rodjenja是用戶的出生日期)「執行」它。我不知道如果我的邏輯的作品,因爲我不能創建此過程:當我嘗試運行我得到了以下錯誤查詢:無法創建存儲過程:語法錯誤

Syntax error. Error code:1064.

這裏是我的代碼:

delimiter # 
create procedure dodajKorisnikaProvjera 
(
    IN p_ime varchar(15), 
    IN p_prezime varchar(15), 
    IN p_broj_telefona int, 
    IN p_datum_rodjenja date, 
    IN p_broj_vozacke int, 
    IN p_grad_id int 
) 
BEGIN 

if(TIMESTAMPDIFF(p_datum_rodjenja,CURDATE()) >18) then 

    INSERT into korisnik(
    ime, 
    prezime, 
    broj_telefona, 
    datum_rodjenja, 
    broj_vozacke, 
    grad_id) 
    VALUES(
    p_ime, 
    p_prezime, 
    p_broj_telefona, 
    p_datum_rodjenja, 
    p_broj_vozacke, 
    p_grad_id 
    ); 
    else 
    select'Korisnik mora imati vise od 18 godina.'; 
    end if; 

END# 
delimiter; 
+0

正確的,如果條件是這樣的:(TIMESTAMPDIFF(年,p_datum_rodjenja,CURDATE())> 18) –

+0

THX的傢伙,它的工作原理。如果你只能幫助我什麼是「年」,爲什麼我使用它? –

+0

這是關於此的好教程:http://www.w3resource.com/mysql/date-and-time-functions/mysql-timestampdiff-function.php –

回答

1

你是在Timestampdiff函數中有錯誤。 糾正了這樣的:

TIMESTAMPDIFF(year,p_datum_rodjenja,CURDATE()) >18)