首页 > 数据库 >mysql学习---简单的数据库初始化脚本和sql分析

mysql学习---简单的数据库初始化脚本和sql分析

时间:2022-10-26 17:31:55浏览次数:48  
标签:COMMENT varchar RELAY mysql NE --- sql NULL ID

1、创建库、表、权限等

DROP DATABASE IF EXISTS `KMS_DB`;

CREATE DATABASE IF NOT EXISTS `KMS_DB` CHARACTER SET `utf8` COLLATE `utf8_general_ci`;

/*character set,数据库的字符集设置,collate此处是建表时utf8_genera_ci不区分大小写*/

USE `KMS_DB`;

SET FOREIGN_KEY_CHECKS=0;

/*取消外键约束,即在表之间有外键的情况下不影响删除表、更改表结构*/

-- Table structure for A_Device_Auth

-- ----------------------------

DROP TABLE IF EXISTS `A_Device_Auth`;

CREATE TABLE `A_Device_Auth` (

 `DeviceID` bigint(20) NOT NULL,

 `DeviceType` int(1) NOT NULL DEFAULT '1' COMMENT '0:未知;1:密钥管理终端;',

/*int not null default 1 comment 0,是指不可以插入null,不设置就是默认1,comment 是指用户显示创建表的信息的时候,可以看见注释信息,此处是字段的注释 */

 `UserName` varchar(20) DEFAULT NULL,

/*default null是指不给值时就默认空 */

 `Password` varchar(64) DEFAULT NULL,

 `AuthStatus` tinyint(4) DEFAULT '1' COMMENT '0:无效;1:有效',

 `UpdateTime` datetime DEFAULT NULL COMMENT '更新时间',

 PRIMARY KEY (`DeviceID`),

 CONSTRAINT `FK_Auth_Terminal_Id` FOREIGN KEYFOREIGN KEY (`DeviceID`) REFERENCES `D_Quantum_Devices` (`DeviceID`)

 /*constraint约束的目的是为了确保表中数据记录的完整性,有主键约束,外键约束,唯一性约束等等,这里用的是外键约束,涉及到两个表

  即主表和从表,外键约束一般是从表声明。此处声明本表的DeviceID要被主表的DeviceID约束

*/

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='密钥管理终端的认证信息';

/*这里是表的注释*/

GRANT usage ON `KMS_DB`.* TO 'kms'@'localhost' IDENTIFIED BY 'Qkms@2016';  

DROP USER 'kms'@'localhost';  

/*先将可能存在的其他用户的权限清空,再删除*/

-- --------------------------------

-- 创建kms账户  默认密码kms

-- --------------------------------  

CREATE USER 'kms'@'localhost' IDENTIFIED BY 'Qkms@2016';

/*重新创建kms用户,只用于本机连接,下面是赋予了具体的操作权限,在具体的表*/

 

-- --------------------------------

-- 为表赋予权限 表级别

-- --------------------------------

GRANT DELETE, INSERT, SELECT, UPDATE ON `KMS_DB`.`D_Quantum_Devices` TO 'kms'@'localhost';  

​GRANT DELETE, INSERT, SELECT, UPDATE ON ​​​KMS_DB​​​​.​​​A_Device_Auth​​​ TO 'kms'@'localhost';   FLUSH PRIVILEGES;

2、创建索引

DROP TABLE IF EXISTS `t_bs_relay_path`;

CREATE TABLE `t_bs_relay_path` (

 `I_RELAY_PATH_ID` varchar(32) NOT NULL COMMENT '中继路径标识。由S_RELAY_PATH_MOI_NAME的MD5生成。',

 `S_RELAY_PATH_MOI_NAME` varchar(255) NOT NULL COMMENT '中继路径MOI名称。由起止端网元名称中间加双竖线生成,如:235739',

 `S_RELAY_PATH_FRIEND_NAME` varchar(255) NOT NULL,

 `S_BEGIN_NE_ID` varchar(32) NOT NULL COMMENT '起始端网元标识。是MOI标识。',

 `S_END_NE_ID` varchar(32) NOT NULL COMMENT '终止端网元标识。是MOI标识。',

 `I_DATA_SOURCE` decimal(4,0) NOT NULL COMMENT '数据来源。枚举来自字典表。',

 UNIQUE KEY `UK_T_BS_RELAY_PATH` (`I_RELAY_PATH_ID`),

 KEY `IDX_T_BS_RELAY_PATH` (`I_RELAY_PATH_ID`)

/*unique key 和 primary Key都是唯一性约束,前者是可以为NULL的,且前者是可以有多个的,但后者只能有一个

 key即为索引,是unique索引,加速查询。写法可以是只声明单独的Key,也可以结合unique key或者primary key

 所以,primarykey和unique key都是即可以作为约束,也可以是索引的基础

 普通的索引就是index,而非Key*/

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、sql脚本中创建函数

drop function if exists SF_CLEAN_NE_SOFT_DATA  /*drop function 和create function ,自定义或者叫创建函数*/ ;

create function SF_CLEAN_NE_SOFT_DATA

(

IN_NE_ID   varchar(32),  /*网元ID*/

IN_TYPE    int           /*类型,1,KS设备,2:其它设备*/

)

returns int /*返回结果:0,成功,-1,参数为空,-2,清除失败*/

/*函数创建的语法是

create function name 参数列表 returns 返回值的类型

begin

  函数体

end

调用函数是 select 函数名 参数列表*/

begin

declare iRet int default 0;  /*定义变量iRet*/

/*异常处理*/

declare continue handler for sqlexception set iRet = -2; /*declare exit或者continue,也就是异常退出或继续

if IN_NE_ID is not null and IN_TYPE is not null then

 /*如果是KS设备,则删除进程信息*/

 if 1 = IN_TYPE then

  delete from T_DM_PROCESS where S_SOFT_ID in(select S_SOFT_ID from T_DM_SOFT where S_NE_MOI_ID = IN_NE_ID);

 end if;

 /*删除软件及模块信息*/

 delete from T_DM_SOFT where S_NE_MOI_ID = IN_NE_ID;

else

 set iRet = -1;

end if;


   /*返回结果*/

return iRet;

end

;


标签:COMMENT,varchar,RELAY,mysql,NE,---,sql,NULL,ID
From: https://blog.51cto.com/u_11546971/5798121

相关文章

  • #yyds干货盘点# leetcode-136 只出现一次的数字
    本题可以用异或运算,规则是同0,最后剩下的数字就是只出现一次的数字/**<p>给定一个<strong>非空</strong>整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出......
  • #yyds干货盘点# leetcode-136 只出现一次的数字
    本题可以用异或运算,规则是同0,最后剩下的数字就是只出现一次的数字/**<p>给定一个<strong>非空</strong>整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出......
  • k8s-Service
    一、背景通过pod控制器Deployment创建的一组Pod来提供具有高可用性的服务。虽然每个Pod都会分配一个单独的PodIP,然而却存在如下两问题:pod重建后,pod的ip会发生变化po......
  • sqlserver遍历所有表和所有字段,双游标循环。
    sqlserver遍历所有表和所有字段,双游标循环。 --sqlserver遍历所有表和所有字段,双游标循环。begin declare@TableIdIntint declare@TableNameStrvarchar(50) d......
  • 每天三个Linux基础命令-008
    满招损,谦受益。内容不一定精彩,知识不一定你可以用得上,观点不一定准确,还望观者觉得有缺陷欢迎指正,觉得还好的感谢鼓励点赞。8.1man帮助命令主要用法:man后接需要查询的命......
  • 28-28-百万级电商平台即时通讯系统设计实践(1)_ev
                 ......
  • P7078 [CSP-S2020] 贪吃蛇
    [CSP-S2020]贪吃蛇LuoguP7078题目描述草原上有\(n\)条蛇,编号分别为\(1,2,\ldots,n\)。初始时每条蛇有一个体力值\(a_i\),我们称编号为\(x\)的蛇实力比编号为......
  • 考研——现代-错题集(二刷课堂题)
    书上画圈圈的也是 第一章行列式启示:第二种解题方法 ......
  • drf--ViewSet -第二波 进阶版
    https://www.bilibili.com/video/BV1z5411D7BQ?p=19&vd_source=caabcbd2a759a67e2a3de8acbaaf08eaview.pyfromsers.modelsimportBookfromrest_frameworkimportse......
  • 图像处理:opencv-python给图像加文字
    1.起因计算机视觉中常常会需要在图片上加文字,这样可以增强图像数据的可读性。2.工具opencv-python3.方法importmatplotlib.pyplotaspltfromPILimportImag......