Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Can';t创建存储过程:语法错误_Mysql_Procedure - Fatal编程技术网

Mysql Can';t创建存储过程:语法错误

Mysql Can';t创建存储过程:语法错误,mysql,procedure,Mysql,Procedure,我想做一个将用户插入表中的过程,但它还应该检查用户是否为18岁。我用一个if语句(“code>p\u datum\u rodjenja是用户的出生日期”)来“做”它。我不确定我的逻辑是否有效,因为我无法创建此过程:当我尝试运行查询时,出现以下错误: 语法错误。错误代码:1064 这是我的密码: delimiter # create procedure dodajKorisnikaProvjera ( IN p_ime varchar(15), IN p_prezime varc

我想做一个将用户插入表中的过程,但它还应该检查用户是否为18岁。我用一个
if
语句(“code>p\u datum\u 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;

Timestampdiff函数中有错误。 请这样更正:

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

如果条件是:(TIMESTAMPDIFF(year,p_datum_rodjenja,CURDATE())>18)Thx dude,则正确,它可以工作。如果你能帮助我,那“一年”是什么,我为什么要用它?这是一个很好的教程:Thx,现在我明白了;)