无法创建存储过程:语法错误
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)
我想制作一个将用户插入 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)