• SQL_game_db


    创建数据库:CREATE DATABASE `game_s1`;

    在game数据库source game_db.sql:

    CREATE TABLE IF NOT EXISTS `account` (
        `accountid` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '账号ID,唯一,自增',
        `accountname` VARCHAR(64) NOT NULL COMMENT '账号名',
        `passwd` VARCHAR(32) NOT NULL COMMENT '密码',
        `createtime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '账号创建时间',
        `lastlogintime` DATETIME COMMENT '上次登录时间',
        `lastlogouttime` DATETIME COMMENT '上次登出时间',
        `status` INT DEFAULT 0 COMMENT '状态 0正常 1被封禁',
        PRIMARY KEY (`accountid`),
        UNIQUE KEY `uk_accountname` (`accountname`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
    
    CREATE TABLE IF NOT EXISTS `role` (
        `accountid` INT UNSIGNED NOT NULL COMMENT '角色所属账号ID',
        `roleid` BIGINT NOT NULL COMMENT '角色ID',
        `rolename` VARCHAR(64) NOT NULL COMMENT '角色名字',
        `createtime` DATETIME DEFAULT CURRENT_TIMESTAMP    COMMENT '角色创建时间',
        `serverid` INT DEFAULT 0 COMMENT '当前所在的服务器ID,合服会改变该值',
        `bornserverid` INT DEFAULT 0 COMMENT '创建时的服务器ID',
        `status` INT DEFAULT 1 COMMENT '等于0:已删除,第0位:被封禁,第1位:有效,第2位:首选,第3位:是否在线',
        `level` INT DEFAULT 1 COMMENT '等级',
        `exp` BIGINT DEFAULT 0 COMMENT '经验',
        `data` MEDIUMBLOB DEFAULT NULL COMMENT '角色其他数据,json格式',
        PRIMARY KEY (`roleid`),
        INDEX `idx_accountid` (`accountid`),
        INDEX `idx_rolename` (`rolename`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
    
    CREATE TABLE IF NOT EXISTS `currency` (
        `roleid` BIGINT NOT NULL COMMENT '货币所属角色ID',
        `currencytype` INT UNSIGNED NOT NULL COMMENT '货币类型',
        `currencyvalue` BIGINT DEFAULT 0 COMMENT '货币值',
        PRIMARY KEY (`roleid`, `currencytype`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
    
    CREATE TABLE IF NOT EXISTS `bagitem` (
        `roleid` BIGINT NOT NULL COMMENT '背包物品所属角色ID',
        `bagid` INT NOT NULL COMMENT '背包ID',
        `guid` BIGINT NOT NULL COMMENT '物品的唯一ID',
        `itemid` INT NOT NULL COMMENT '物品类型ID',
        `count` INT DEFAULT 0 COMMENT '数量',
        `bind` INT DEFAULT 0 COMMENT '是否绑定',
        `expirationtime` DATETIME DEFAULT 0 COMMENT '过期时间',
        `attrs` BLOB DEFAULT NULL COMMENT '特殊属性',
        INDEX `idx_roleid` (`roleid`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
    
    /****************************************/
    /* create procedure */
    /****************************************/
    
    DROP PROCEDURE IF EXISTS `createnewrole`;
    
    DELIMITER $$
    CREATE PROCEDURE `createnewrole` (
    IN _accountid INT UNSIGNED,
    IN _roleid BIGINT,
    IN _rolename VARCHAR(64),
    IN _serverid INT,
    IN _bornserverid INT)
    BEGIN
        DECLARE nowcount INT DEFAULT 0;
        SET nowcount = (SELECT COUNT(*) FROM `role` WHERE `status`<>0 AND `accountid`=_accountid AND `serverid`=_serverid AND `bornserverid`=_bornserverid);
        IF nowcount < 3 THEN
            INSERT INTO `role`(`accountid`,`roleid`,`rolename`,`serverid`,`bornserverid`,`status`) VALUES(_accountid,_roleid,_rolename,_serverid,_bornserverid,2);
        END IF;
    END $$
    DELIMITER ;
    
    -- CALL `createnewrole`(1,1,'rose',1,1);
  • 相关阅读:
    css伪类函数 :is() 和 :where()
    卷积层 / 全连接层 的空间和计算复杂度
    mysql中分组获取前三条记录的方法
    sql server数据去重复的四种方法
    C#获取dynamic(动态)实体的属性值
    Sqlserver使用游标循环插入,把上一个select语句的结果当成value值的一部分insert到一张表
    红玫瑰与白玫瑰
    解决vue3中通过params传值以后,刷新页面,params丢失问题。
    mybatis 注解的方式查询
    了解Android已发布的各种版本(即1.0、2.0、3.0、4.0、5.0、6.0、7.0、8.0)
  • 原文地址:https://www.cnblogs.com/codingthings/p/15756224.html
Copyright © 2020-2023  润新知