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

时间:2015-07-20 17:33:29

标签: mysql procedure

我想创建一个将用户插入表中的过程,但它也应检查用户是否已满18岁。我"做"做"它带有if语句(p_datum_rodjenja是用户的出生日期)。我不确定我的逻辑是否有效,因为我无法创建此过程:当我尝试运行查询时出现以下错误:

  

语法错误。错误代码: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;

1 个答案:

答案 0 :(得分:1)

您在Timestampdiff功能中遇到错误。 像这样纠正它:

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