I've got 5 tables in database
ApartamentClass(idclass,descript)
Room(idroom,idclass,beds,isfree)
ItemPrice(iditem,idclass,description,price)
Client(idclient,fio)
Active(idcontract,idclient,idroom,days,price,idclass)
I need to create a stored procedure that check whether exists free room with certain class(param1) and number of beds (param2) and create renting contract for this room and client(fio)(param3) for several days (param4).
The price depends on class of the room(higher class -> higher price for one bed and one day).
create procedure UserRequest(
in param1 int,
in param2 int,
in param3 varchar(100),
in param4 int
)
begin
declare iroom int default 0;
select idroom into iroom from room
where beds = param2 and idclass = param1 and isfree = 0
limit 1;
if not (iroom=0) then
update room set isfree = 1
where idroom = iroom;
end if;
declare iclient int default 0;
select idclient into iclient from client
where fio = param3
limit 1;
declare bedprice decimal default 0.0;
select (param2 * price) into bedprice from itemprice
where description = "bed" and idclass = param1;
declare dayprice decimal default 0.0;
select (param4 * price) into dayprice from itemprice
where description = "day" and idclass = param1;
declare price decimal default 0.0;
set price = bedprice + dayprice;
insert into active(idclient,idroom,days,price,idclass)
values(iclient,iroom,param4,price,param1);
end
But I always get SQL syntax error. I can't get where the problem is.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'declare iclient int default 0;
select idclient into iclient from client
wh' at line 20