CREATE PROCEDURE SP_THROW_MESSAGE(pInput smallint)
begin
if(pInput = 1) then
insert into tablename values('x');
else
--throw exception
SIGNAL SQLSTATE '99999' SET MESSAGE_TEXT = 'test throw exception';
end if;
end
call SP_THROW_MESSAGE(2)
หรือ ถ้าต้องการให้ throw exception หากเกิด exception จริงๆ ก็ เขียนแบบนี้ครับ
CREATE PROCEDURE SP_THROW_MESSAGE(pInput smallint)
begin
declare exit handler for sqlexception
p1:begin
SIGNAL SQLSTATE '12345' SET MESSAGE_TEXT = 'TEST';
end p1;
insert into tablename values('x');
end
call SP_THROW_MESSAGE()
โดย store นี้จะเข้าทำงาน ที่ คำสั่ง insert แต่หากมี exception เกิดขึ้นก็จะเข้าไปทำที่ signal ซึ่งถ้า program ที่เขียนมีการ try catch เอาไว้ก็จะได้ sqlException ออกมา

ไม่มีความคิดเห็น:
แสดงความคิดเห็น