我想创建一个将用户插入表中的过程,但它也应检查用户是否已满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;
答案 0 :(得分:1)
您在Timestampdiff功能中遇到错误。 像这样纠正它:
TIMESTAMPDIFF(year,p_datum_rodjenja,CURDATE()) >18)