Skip to content

Latest commit

 

History

History
903 lines (677 loc) · 20.8 KB

output.wiki

File metadata and controls

903 lines (677 loc) · 20.8 KB

-- Create Date : 2018-11-09T14:36:01 -- h1. Schema : oz_dev_game h3. Tables

||name||comments|| |[db_error|#dberror]|errors which are raised by procedures. | |[oz_bt_char|#ozbtchar]| | |[oz_bt_motion|#ozbtmotion]| | |[oz_bt_skin_char|#ozbtskinchar]| | |[oz_bt_skin_weapon|#ozbtskinweapon]| | |[oz_gt_char|#ozgtchar]|char | |[oz_gt_motion|#ozgtmotion]| | |[oz_gt_skin|#ozgtskin]| | |[oz_gt_user|#ozgtuser]| | |[oz_gt_weapon_skin|#ozgtweaponskin]| |


h3. Views

||name|| |[oz_vt_inven|#ozvtinven]|


h3. Functions

||name||comments|| |[fn_check_base_data|#fncheckbasedata]|checks if base tables are valid; it returns any error messages if exist. | |[fn_check_resource|#fncheckresource]| | |[fn_rand|#fnrand]|generates a random number. | |[fn_split_string|#fnsplitstring]|returns substrings splited from the source string. |


h3 Procedures

||name||comments|| |[fn_db_error|#fndberror]|inserts procedure error logs into db_error.. | |[sp_char_motion_update|#spcharmotionupdate]|character motion update | |[sp_char_skin_insert|#spcharskininsert]|character skin insert proc | |[sp_char_skin_update|#spcharskinupdate]|character skin update proc | |[sp_insert_player|#spinsertplayer]| | |[sp_motion_insert|#spmotioninsert]|motion insert proc | |[sp_user_create|#spusercreate]|character motion update |



h3. db_error bq. Comment : errors which are raised by procedures.\\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |sn|bigint(20)|NO | |auto_increment |log sn | |log_date|datetime|NO |CURRENT_TIMESTAMP | |log date | |usn|bigint(20) unsigned|YES | | |USN | |sp_name|varchar(50)|YES | | |name of the procedure | |params|varchar(1024)|YES | | |parameter list (separated by '|') | |sql_state|varchar(50)|YES | | |mysql sql state | |err_no|int(11)|YES | | |mysql error number | |err_msg|varchar(512)|YES | | |mysql error text |

h5. Indexs

||name||columns||isnull|| |PRIMARY|sn |true |

h5. Create Script

{code} CREATE TABLE `db_error` (

  `sn` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'log sn',
  `log_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'log date',
  `usn` bigint(20) unsigned DEFAULT NULL COMMENT 'USN',
  `sp_name` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'name of the procedure',
  `params` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'parameter list (separated by ''|'')',
  `sql_state` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'mysql sql state',
  `err_no` int(11) DEFAULT NULL COMMENT 'mysql error number',
  `err_msg` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'mysql error text',
  PRIMARY KEY (`sn`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci COMMENT='errors which are raised by procedures.' {code} [goto]

h3. oz_bt_char bq. Comment : \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |id|int(11)|NO | | |char id | |name|varchar(50)|YES | | |char name | |update_date|datetime|NO |CURRENT_TIMESTAMP |on update CURRENT_TIMESTAMP |update date | |is_default|tinyint(4)|NO |0 | |default char |

h5. Indexs

||name||columns||isnull|| |PRIMARY|id |true |

h5. Create Script

{code} CREATE TABLE `oz_bt_char` (

  `id` int(11) NOT NULL COMMENT 'char id',
  `name` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'char name',
  `update_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'update date',
  `is_default` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'default char',
  PRIMARY KEY (`id`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci {code} [goto]

h3. oz_bt_motion bq. Comment : \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |id|int(11)|NO | | |motion id | |char_id|int(11)|YES | | |related character id | |update_date|datetime|NO |CURRENT_TIMESTAMP |on update CURRENT_TIMESTAMP |update date |

h5. Indexs

||name||columns||isnull|| |PRIMARY|id |true |

h5. Create Script

{code} CREATE TABLE `oz_bt_motion` (

  `id` int(11) NOT NULL COMMENT 'motion id',
  `char_id` int(11) DEFAULT NULL COMMENT 'related character id',
  `update_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'update date',
  PRIMARY KEY (`id`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci {code} [goto]

h3. oz_bt_skin_char bq. Comment : \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |id|int(11)|NO | | |skin id | |char_id|int(11)|YES | | |related character id | |update_date|datetime|NO |CURRENT_TIMESTAMP |on update CURRENT_TIMESTAMP |update date |

h5. Indexs

||name||columns||isnull|| |PRIMARY|id |true |

h5. Create Script

{code} CREATE TABLE `oz_bt_skin_char` (

  `id` int(11) NOT NULL COMMENT 'skin id',
  `char_id` int(11) DEFAULT NULL COMMENT 'related character id',
  `update_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'update date',
  PRIMARY KEY (`id`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci {code} [goto]

h3. oz_bt_skin_weapon bq. Comment : \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |id|int(11)|NO | | |skin id | |char_id|int(11)|YES | | |related character id | |update_date|datetime|NO |CURRENT_TIMESTAMP |on update CURRENT_TIMESTAMP |update date |

h5. Indexs

||name||columns||isnull|| |PRIMARY|id |true |

h5. Create Script

{code} CREATE TABLE `oz_bt_skin_weapon` (

  `id` int(11) NOT NULL COMMENT 'skin id',
  `char_id` int(11) DEFAULT NULL COMMENT 'related character id',
  `update_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'update date',
  PRIMARY KEY (`id`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci {code} [goto]

h3. oz_gt_char bq. Comment : char \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |row_id|bigint(20)|NO | |auto_increment |row id | |usn|bigint(20)|NO | | |usn | |char_id|int(11)|NO | | |character id | |skin|int(11)|NO |0 | |equip skin id (fk:oz_bt_skin_char.id) | |wskin|int(11)|NO |0 | |equip weapon skin id (fk:oz_bt_skin_weapon.id) | |motion_0|int(11)|NO |0 | |equip motion id in slot 0 | |motion_1|int(11)|NO |0 | |equip motion id in slot 1 | |motion_2|int(11)|NO |0 | |equip motion id in slot 2 | |motion_3|int(11)|NO |0 | |equip motion id in slot 3 | |update_date|datetime|NO |CURRENT_TIMESTAMP |on update CURRENT_TIMESTAMP |update date |

h5. Indexs

||name||columns||isnull|| |PRIMARY|row_id |true | |usn_char_id|usn,char_id |true |

h5. Create Script

{code} CREATE TABLE `oz_gt_char` (

  `row_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'row id',
  `usn` bigint(20) NOT NULL COMMENT 'usn',
  `char_id` int(11) NOT NULL COMMENT 'character id',
  `skin` int(11) NOT NULL DEFAULT '0' COMMENT 'equip skin id (fk:oz_bt_skin_char.id)',
  `wskin` int(11) NOT NULL DEFAULT '0' COMMENT 'equip weapon skin id (fk:oz_bt_skin_weapon.id)',
  `motion_0` int(11) NOT NULL DEFAULT '0' COMMENT 'equip motion id in slot 0',
  `motion_1` int(11) NOT NULL DEFAULT '0' COMMENT 'equip motion id in slot 1',
  `motion_2` int(11) NOT NULL DEFAULT '0' COMMENT 'equip motion id in slot 2',
  `motion_3` int(11) NOT NULL DEFAULT '0' COMMENT 'equip motion id in slot 3',
  `update_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'update date',
  PRIMARY KEY (`row_id`),
  UNIQUE KEY `usn_char_id` (`usn`,`char_id`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci COMMENT='char ' {code} [goto]

h3. oz_gt_motion bq. Comment : \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |usn|bigint(20)|NO | | | | |motion_id|int(11)|NO | | | |

h5. Indexs

||name||columns||isnull|| |PRIMARY|usn,motion_id |true |

h5. Create Script

{code} CREATE TABLE `oz_gt_motion` (

  `usn` bigint(20) NOT NULL,
  `motion_id` int(11) NOT NULL,
  PRIMARY KEY (`usn`,`motion_id`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci {code} [goto]

h3. oz_gt_skin bq. Comment : \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |usn|bigint(20)|NO | | | | |skin_id|int(11)|NO | | | |

h5. Indexs

||name||columns||isnull|| |PRIMARY|usn,skin_id |true |

h5. Create Script

{code} CREATE TABLE `oz_gt_skin` (

  `usn` bigint(20) NOT NULL,
  `skin_id` int(11) NOT NULL,
  PRIMARY KEY (`usn`,`skin_id`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci {code} [goto]

h3. oz_gt_user bq. Comment : \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |usn|int(11)|NO | | |usn | |nick|varchar(32)|YES | | |nickname | |dp|int(11)|NO |0 | |dot point | |reg_date|datetime|NO |CURRENT_TIMESTAMP | |regist date | |update_date|datetime|NO |CURRENT_TIMESTAMP |on update CURRENT_TIMESTAMP |update date |

h5. Indexs

||name||columns||isnull|| |PRIMARY|usn |true |

h5. Create Script

{code} CREATE TABLE `oz_gt_user` (

  `usn` int(11) NOT NULL COMMENT 'usn',
  `nick` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'nickname',
  `dp` int(11) NOT NULL DEFAULT '0' COMMENT 'dot point',
  `reg_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'regist date',
  `update_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'update date',
  PRIMARY KEY (`usn`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci {code} [goto]

h3. oz_gt_weapon_skin bq. Comment : \\Engine : InnoDB\\Collation : utf8mb4_unicode_ci\\ h5. Columns

||name||type||null||default||extra||comment|| |usn|bigint(20)|NO | | | | |wskin_id|int(11)|NO | | | | |update_date|datetime|YES |CURRENT_TIMESTAMP | | |

h5. Indexs

||name||columns||isnull|| |PRIMARY|usn,wskin_id |true |

h5. Create Script

{code} CREATE TABLE `oz_gt_weapon_skin` (

  `usn` bigint(20) NOT NULL,
  `wskin_id` int(11) NOT NULL,
  `update_date` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`usn`,`wskin_id`)

) ENGINE=InnoDB COLLATE=utf8mb4_unicode_ci {code} [goto]

    1. h3. oz_vt_inven
h5. Create Script

{code} CREATE VIEW `oz_vt_inven` AS select `oz_gt_skin`.`usn` AS `usn`,`oz_gt_skin`.`skin_id` AS `id`,0 AS `inven_type` from `oz_gt_skin` union all select `oz_gt_weapon_skin`.`usn` AS `usn`,`oz_gt_weapon_skin`.`wskin_id` AS `id`,1 AS `inven_type` from `oz_gt_weapon_skin` union all select `oz_gt_motion`.`usn` AS `usn`,`oz_gt_motion`.`motion_id` AS `id`,2 AS `inven_type` from `oz_gt_motion` {code} [goto]

h3. fn_check_base_data bq. Comment : checks if base tables are valid; it returns any error messages if exist.

h5. Create Script

{code} CREATE FUNCTION `fn_check_base_data`() RETURNS varchar(10000) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci

    COMMENT 'checks if base tables are valid; it returns any error messages if exist.'

BEGIN DECLARE v_output VARCHAR(10000) DEFAULT ;

-- check oz_bt_motion table SELECT GROUP_CONCAT(CONCAT(tt.id,':',tt.check_resource) SEPARATOR '|') INTO v_output FROM ( SELECT * FROM ( SELECT id, fn_check_resource(char_id,1) AS check_resource FROM oz_bt_motion ) AS tt WHERE tt.check_resource IS NOT NULL LIMIT 10 ) AS tt;

IF NULLIF(v_output,) IS NOT NULL THEN RETURN CONCAT('oz_bt_motion => ',v_output); END IF;

-- check oz_bt_skin_char table SELECT GROUP_CONCAT(CONCAT(tt.id,':',tt.check_resource) SEPARATOR '|') INTO v_output FROM ( SELECT * FROM ( SELECT id, fn_check_resource(char_id,1) AS check_resource FROM oz_bt_skin_char ) AS tt WHERE tt.check_resource IS NOT NULL LIMIT 10 ) AS tt;

IF NULLIF(v_output,) IS NOT NULL THEN RETURN CONCAT('oz_bt_skin_char => ',v_output); END IF;

-- check oz_bt_skin_weapon table SELECT GROUP_CONCAT(CONCAT(tt.id,':',tt.check_resource) SEPARATOR '|') INTO v_output FROM ( SELECT * FROM ( SELECT id, fn_check_resource(char_id,1) AS check_resource FROM oz_bt_skin_weapon ) AS tt WHERE tt.check_resource IS NOT NULL LIMIT 10 ) AS tt;

IF NULLIF(v_output,) IS NOT NULL THEN RETURN CONCAT('oz_bt_skin_weapon => ',v_output); END IF;

RETURN ; END {code} [goto]

h3. fn_check_resource bq. Comment :

h5. Create Script

{code} CREATE FUNCTION `fn_check_resource`( `pi_resource_id` INT, `pi_type` TINYINT

) RETURNS varchar(100) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci BEGIN DECLARE v_exist INT DEFAULT 0;

CASE WHEN pi_type = 1 THEN SELECT IFNULL(MIN(id),0) INTO v_exist FROM oz_bt_char WHERE id = pi_resource_id;

IF v_exist = 0 THEN RETURN CONCAT('not found char : ', pi_resource_id); END IF; END CASE;

RETURN NULL; END {code} [goto]

h3. fn_rand bq. Comment : generates a random number.

h5. Create Script

{code} CREATE FUNCTION `fn_rand`( `pi_max` INT ) RETURNS int(11)

    COMMENT 'generates a random number.'

BEGIN RETURN FLOOR(RAND() * pi_max); END {code} [goto]

h3. fn_split_string bq. Comment : returns substrings splited from the source string.

h5. Create Script

{code} CREATE FUNCTION `fn_split_string`( `pi_src` VARCHAR(10000), `pi_delimiter` VARCHAR(2), `pi_pos` INT ) RETURNS varchar(100) CHARSET utf8

    COMMENT 'returns substrings splited from the source string.'

BEGIN IF pi_src IS NULL OR LENGTH(TRIM(pi_src)) = 0 THEN RETURN ; END IF;

IF LOCATE(pi_delimiter, pi_src) = 0 THEN IF pi_pos = 1 THEN RETURN pi_src; ELSE RETURN ; END IF; END IF;

RETURN IFNULL( REPLACE( SUBSTRING( SUBSTRING_INDEX(pi_src, pi_delimiter, pi_pos), CHAR_LENGTH( SUBSTRING_INDEX(pi_src, pi_delimiter, pi_pos - 1) ) + 1), pi_delimiter, ), ); END {code} [goto]

h3. fn_db_error bq. Comment : inserts procedure error logs into db_error..

h5. Create Script

{code} CREATE PROCEDURE `fn_db_error`( IN `pi_usn` BIGINT, IN `pi_sp_name` VARCHAR(50), IN `pi_params` VARCHAR(1024), IN `pi_sqlstate` VARCHAR(50), IN `pi_err_no` INT, IN `pi_err_msg` VARCHAR(512)

)

    COMMENT 'inserts procedure error logs into db_error..'

BEGIN INSERT INTO db_error (usn,sp_name,params,sql_state,err_no,err_msg) VALUES (pi_usn,pi_sp_name,pi_params,pi_sqlstate,pi_err_no,pi_err_msg); END {code} [goto]

h3. sp_char_motion_update bq. Comment : character motion update

h5. Create Script

{code} CREATE PROCEDURE `sp_char_motion_update`( IN `pi_usn` BIGINT, IN `pi_char_id` INT, IN `pi_motion_id` INT, IN `pi_slot` TINYINT

)

    COMMENT 'character motion update'

THIS_SP: BEGIN DECLARE v_return INT DEFAULT 0;

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING BEGIN GET DIAGNOSTICS CONDITION 1 @v_sqlstate = RETURNED_SQLSTATE, @v_err_no = MYSQL_ERRNO, @v_err_msg = MESSAGE_TEXT; ROLLBACK;

SET v_return = -999;

SET @v_sp_name := 'sp_char_motion_update'; SET @v_params := CONCAT(pi_usn, '|', pi_char_id, '|', pi_motion_id,'|',pi_slot); CALL fn_db_error(pi_usn, @v_sp_name, @v_params, @v_sqlstate, @v_err_no, @v_err_msg); SELECT v_return; END;

START TRANSACTION;

-- update char motion update CASE WHEN pi_slot = 0 THEN UPDATE oz_gt_char SET motion_0 = pi_motion_id WHERE usn = pi_usn AND char_id = pi_char_id; WHEN pi_slot = 1 THEN UPDATE oz_gt_char SET motion_1 = pi_motion_id WHERE usn = pi_usn AND char_id = pi_char_id; WHEN pi_slot = 2 THEN UPDATE oz_gt_char SET motion_2 = pi_motion_id WHERE usn = pi_usn AND char_id = pi_char_id; WHEN pi_slot = 3 THEN UPDATE oz_gt_char SET motion_3 = pi_motion_id WHERE usn = pi_usn AND char_id = pi_char_id; END CASE;

IF ROW_COUNT() = 0 THEN ROLLBACK; SET v_return = -999; SELECT v_return; LEAVE THIS_SP; END IF;

COMMIT; SELECT v_return; END {code} [goto]

h3. sp_char_skin_insert bq. Comment : character skin insert proc

h5. Create Script

{code} CREATE PROCEDURE `sp_char_skin_insert`(IN pi_usn BIGINT, IN pi_skin_id INT, IN pi_slot TINYINT)

    COMMENT 'character skin insert proc'

THIS_SP: BEGIN DECLARE v_return INT DEFAULT 0;

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING BEGIN GET DIAGNOSTICS CONDITION 1 @v_sqlstate = RETURNED_SQLSTATE, @v_err_no = MYSQL_ERRNO, @v_err_msg = MESSAGE_TEXT; ROLLBACK;

SET v_return = -999;

SET @v_sp_name := 'sp_char_skin_insert'; SET @v_params := CONCAT(pi_usn, '|', pi_skin_id , '|', `pi_slot`); CALL fn_db_error(pi_usn, @v_sp_name, @v_params, @v_sqlstate, @v_err_no, @v_err_msg); SELECT v_return; END;

START TRANSACTION;

CASE WHEN pi_slot = 0 THEN -- insert char skin INSERT INTO oz_gt_skin (usn, skin_id)

      VALUES (pi_usn, pi_skin_id);

WHEN pi_slot = 1 THEN

INSERT INTO oz_gt_weapon_skin (usn, wskin_id)

      VALUES (pi_usn, pi_skin_id);

END CASE;


IF ROW_COUNT() = 0 THEN ROLLBACK; SET v_return = -999; SELECT v_return; LEAVE THIS_SP; END IF;

COMMIT; SELECT v_return; END {code} [goto]

h3. sp_char_skin_update bq. Comment : character skin update proc

h5. Create Script

{code} CREATE PROCEDURE `sp_char_skin_update`( IN `pi_usn` BIGINT, IN `pi_char_id` INT, IN `pi_skin_id` INT , IN `pi_slot` TINYINT

)

    COMMENT 'character skin update proc'

THIS_SP: BEGIN DECLARE v_return INT DEFAULT 0;

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING BEGIN GET DIAGNOSTICS CONDITION 1 @v_sqlstate = RETURNED_SQLSTATE, @v_err_no = MYSQL_ERRNO, @v_err_msg = MESSAGE_TEXT; ROLLBACK;

SET v_return = -999;

SET @v_sp_name := 'sp_char_skin_update'; SET @v_params := CONCAT(pi_usn, '|', pi_char_id, '|', pi_skin_id,'|',pi_slot); CALL fn_db_error(pi_usn, @v_sp_name, @v_params, @v_sqlstate, @v_err_no, @v_err_msg); SELECT v_return; END;

START TRANSACTION;

CASE WHEN pi_slot = 0 THEN

-- update char skin INSERT INTO oz_gt_char (usn,char_id,skin ) VALUES (pi_usn,pi_char_id,pi_skin_id) ON DUPLICATE KEY UPDATE skin = pi_skin_id;

WHEN pi_slot = 1 THEN

-- update weapon skin INSERT INTO oz_gt_char (usn,char_id,wskin ) VALUES (pi_usn,pi_char_id,pi_skin_id) ON DUPLICATE KEY UPDATE wskin = pi_skin_id; END CASE;

IF ROW_COUNT() = 0 THEN ROLLBACK; SET v_return = -999; SELECT v_return; LEAVE THIS_SP; END IF;

COMMIT; SELECT v_return; END {code} [goto]

h3. sp_insert_player bq. Comment :

h5. Create Script

{code} CREATE PROCEDURE `sp_insert_player`( IN `pi_usn` BIGINT, IN `pi_game_id` VARCHAR(255), IN `pi_nick` VARCHAR(255)

) BEGIN

  -- insert default char 
  -- INSERT INTO oz_gt_char (usn, char_id)
  -- SELECT pi_usn,id FROM oz_bt_char WHERE is_default=1; 
  
  

END {code} [goto]

h3. sp_motion_insert bq. Comment : motion insert proc

h5. Create Script

{code} CREATE PROCEDURE `sp_motion_insert`( IN `pi_usn` BIGINT, IN `pi_motion_id` int )

    COMMENT 'motion insert proc'

THIS_SP: BEGIN DECLARE v_return INT DEFAULT 0;

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING BEGIN GET DIAGNOSTICS CONDITION 1 @v_sqlstate = RETURNED_SQLSTATE, @v_err_no = MYSQL_ERRNO, @v_err_msg = MESSAGE_TEXT; ROLLBACK;

SET v_return = -999;

SET @v_sp_name := 'sp_char_skin_insert'; SET @v_params := CONCAT(pi_usn, '|', `pi_motion_id`); CALL fn_db_error(pi_usn, @v_sp_name, @v_params, @v_sqlstate, @v_err_no, @v_err_msg); SELECT v_return; END;

START TRANSACTION;

INSERT INTO oz_gt_motion (usn, motion_id)

  VALUES (pi_usn, pi_motion_id);  

IF ROW_COUNT() = 0 THEN ROLLBACK; SET v_return = -999; SELECT v_return; LEAVE THIS_SP; END IF;

COMMIT; SELECT v_return; END {code} [goto]

h3. sp_user_create bq. Comment : character motion update

h5. Create Script

{code} CREATE PROCEDURE `sp_user_create`( IN `pi_usn` BIGINT, IN `pi_nick` VARCHAR(32) )

    COMMENT 'character motion update'

THIS_SP: BEGIN DECLARE v_return INT DEFAULT 0;

  DECLARE v_dp INT DEFAULT 100;

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING BEGIN GET DIAGNOSTICS CONDITION 1 @v_sqlstate = RETURNED_SQLSTATE, @v_err_no = MYSQL_ERRNO, @v_err_msg = MESSAGE_TEXT; ROLLBACK;

SET v_return = -999;

SET @v_sp_name := 'sp_user_create'; SET @v_params := CONCAT(pi_usn, '|', pi_nick); CALL fn_db_error(pi_usn, @v_sp_name, @v_params, @v_sqlstate, @v_err_no, @v_err_msg); SELECT v_return; END;

START TRANSACTION;

  -- create user if not exist
  INSERT INTO oz_gt_user ( usn,  nick , dp ) VALUES ( pi_usn, pi_nick, v_dp ) ON DUPLICATE KEY UPDATE nick = pi_nick;

IF ROW_COUNT() = 0 THEN ROLLBACK; SET v_return = -999; SELECT v_return; LEAVE THIS_SP; END IF;

COMMIT; SELECT v_return , pi_nick , v_dp; END {code} [goto]