/Script/storeproc_v2.sql

http://awoe.googlecode.com/ · SQL · 44 lines · 40 code · 4 blank · 0 comment · 5 complexity · 98bb0d2e13e0f809442672bd522d8cce MD5 · raw file

  1. drop procedure if exists load_players;
  2. create procedure load_players(IN vaid INT)
  3. begin
  4. select pid, name, gender, features, money_g, money_s, prop_vit, prop_str, prop_agi, prop_int, prop_left, datax, datay, dataz from player where aid = vaid;
  5. end;
  6. drop procedure if exists create_players;
  7. create procedure create_players(IN vpid INT, IN vaid INT,
  8. IN vname VARCHAR(50), IN vgender TINYINT, IN vfeatures TINYINT)
  9. begin
  10. select max(pid)+1 into vpid;
  11. insert into player (pid, aid, name, gender, features, money_g, money_s, prop_vit, prop_str, prop_agi, prop_int, prop_left)
  12. values (vpid, vaid, vname, vgender, vfeatures, 0, 0, 0, 0, 0, 0, 0);
  13. end;
  14. drop procedure if exists update_player;
  15. create procedure update_player(IN vpid INT, IN vaid INT,
  16. IN vname VARCHAR(50), IN vgender TINYINT, IN vfeatures TINYINT,
  17. IN vmoney_g INT, IN vmoney_s INT,
  18. IN vprop_vit SMALLINT, IN vprop_str SMALLINT, IN vprop_agi SMALLINT, IN vprop_int SMALLINT, IN vprop_left SMALLINT,
  19. IN vdatax INT, IN vdatay INT, IN vdataz INT)
  20. begin
  21. select count(*) from player;
  22. select pid from player where pid = vpid and aid = vaid into vpid;
  23. if vpid=0 then
  24. select max(pid)+1 into vpid;
  25. insert into player (pid, aid, name, gender, features, money_g, money_s, prop_vit, prop_str, prop_agi, prop_int, prop_left, datax, datay, dataz)
  26. values (vpid, vaid, vname, vgender, vfeatures, vmoney_g, vmoney_s, vprop_vit, vprop_str, vprop_agi, vprop_int, vprop_left, vdatax, vdatay, vdataz);
  27. else
  28. update player where pid=pid and aid = vaid
  29. set name = vname,
  30. gender = vgender, features = vfeatures,
  31. money_g = vmoney_g, money_s = vmoney_s,
  32. prop_vit = vprop_vit, prop_str = vprop_str, prop_agi=vprop_agi, prop_int=vprop_int, prop_left=vprop_left,
  33. datax = vdatax, datay=vdatay, dataz=vdataz;
  34. end if
  35. end;
  36. drop procedure if exists remove_player;
  37. create procedure remove_player(IN vpid INT)
  38. begin
  39. delete from player where pid=vpid;
  40. end;