无法创建存储过程:语法错误

Can't create stored procedure: Syntax error

我想制作一个将用户插入 table 的过程,但它还应该检查用户是否年满 18 岁。我 "doing" 它带有 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;

您在 Timestampdiff 函数中遇到错误。 像这样更正它:

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