Nested if-statement in MySQL -
Nested if-statement in MySQL -
i making procedure inserts place ("sted") , check if inputs null. however, whenever seek add together if-statement @ start surround code (marked crash below), gives me error saying syntax not right @ "declare varstedskodeid int;" part after if-statement i'm trying add.
to eyes syntax of if-statement same within code, soon-to-be-null-check if-statement crashes simple if(true) then.
can give me hint of causes 1 if crash?
drop procedure if exists insertsted; delimiter $$ create procedure insertsted( in inputstedsnavn varchar(255), in inputstedstype varchar(255), in inputkommunenavn varchar(255)) begin if(true) <<------ crash declare varstedskodeid int; declare varkommunenr int; if(select count(stedkodeid) stedstype kodenavn = inputstedstype limit 1) = 0 insert stedstype values(default, inputstedstype); end if; set varstedskodeid = (select stedkodeid stedstype kodenavn = inputstedstype limit 1); if(select count(kommunenr) kommune kommunenavn = inputkommunenavn limit 1) = 1 set varkommunenr = (select kommunenr kommune kommunenavn = inputkommunenavn limit 1); insert sted values(default, inputstedsnavn, varstedskodeid, varkommunenr); end if; end if; <<------ crash end$$ delimiter ;
declare permitted within begin ... end compound statement , must @ start, before other statements.
http://dev.mysql.com/doc/refman/5.0/en/declare.html
mysql follows strict rules declare
. have declare
variables, tables, etc... @ origin of stored procedure.
change stored procedure this
declare varstedskodeid int; declare varkommunenr int; if(true) if(select count(stedkodeid) stedstype kodenavn = inputstedstype limit 1) = 0 insert stedstype values(default, inputstedstype); end if; set varstedskodeid = (select stedkodeid stedstype kodenavn = inputstedstype limit 1); if(select count(kommunenr) kommune kommunenavn = inputkommunenavn limit 1) = 1 set varkommunenr = (select kommunenr kommune kommunenavn = inputkommunenavn limit 1); insert sted values(default, inputstedsnavn, varstedskodeid, varkommunenr); end if; end if;
mysql if-statement stored-procedures local-variables declare
Comments
Post a Comment