数据库
菜鸟小木干
从小小菜鸟开始自己的代码之路---致五年后的自己
展开
-
Oracle中把逗号分割的字符串转换为可放入in的条件和把多个查询值合并再一起
Oracle中把逗号分割的字符串转换为可放入in的条件语句的字符数列SELECT REGEXP_SUBSTR(v_name, '[^,]+', 1, LEVEL) FROM DUALCONNECT BY REGEXP_SUBSTR(v_name, '[^,]+', 1, LEVEL) IS NOT NULLoracle聚合函数:把多个查询值合并再一起listagg(measure_expr,delimiter) within group ( order by order_by_clause.原创 2021-07-08 16:45:53 · 1859 阅读 · 0 评论 -
行级触发器报ORA-04091: table xxxx is mutating, trigger/function may not see it
创建一个触发器:CREATE OR REPLACE TRIGGER MY_WG BEFORE INSERT ON TAB_USER FOR EACH ROW--对表的每一行触发器执行一次DECLARE NEXT_ID NUMBER;BEGIN SELECT count(*) INTO NEXT_ID FROM TAB_USER; :NEW.ID := NEXT_ID; --:NEW表示新插入的那条记录END;结果:单条插入的时候正常,批量插入就会报错:(ORA-04091错误:原创 2021-04-15 10:59:24 · 694 阅读 · 0 评论 -
ORA-01438: 值大于为此列指定的允许精度
Number的数据声明如下:表示 作用 说明Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,Number(p) 声明一个整数 相当于Number(p, 0)Number 声明一个浮点数 其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。定点数的精度(p)和刻度(s)遵循以下规则:? 当一个数的整数部分的长度 > p-s 时,Oracle就会报错?原创 2021-03-19 15:26:24 · 3837 阅读 · 0 评论 -
Excel表函数自动批量生成SQL
1:首先我们来新建一个测试用的Excel,并且添加几行数据(注意空格,否则容易生成的语句中值会带有空格)2:接着使用在函数栏中添加="update table set item_data='"& B1 &"' where item_id=8 and run_id='"& A1 &"';"以上函数中的A1代表获取A列第一行的数据,点击选中空白行如C1,函数自动生成的语句就会填充进去。3:第二步会生成一条sql语句,接下来鼠标移到C1框右下角直到鼠标变成一个.原创 2020-09-30 10:04:17 · 953 阅读 · 0 评论 -
MySQL建立唯一索引实现插入重复自动更新
在我们往数据库插入数据的时候,需要判断某个字段是否存在,如果存在则执行更新操作,如果不存在则执行插入操作,如果每次首先查询一次判断是否存在,再执行插入或者更新操作,就十分不方便。下面给大家分享个方法,方便大家实现这一功能,下面来一起看看吧。ON DUPLICATE KEY UPDATE这个时候可以给这个字段(或者几个字段)建立唯一索引,同时使用以下 sql 语句进行插入或更新操作: ...原创 2019-11-20 16:31:25 · 2573 阅读 · 0 评论 -
MySQL连表操作和GROUP_CONCAT函数的使用
在开发网站的时候,数据库操作是必须,复杂的网站有时要涉及到几张表的同时操作。以下简单讲解一下多表查询和GROUP_CONCAT函数的使用。例如有三张表 jd_role:角色表,jd_role_privilege:角色权限id关联表,jd_privilege:权限表,三张表的结构如下:1、要求查询每个角色拥有的权限:使用left join左外连进行连表操作:转载 2017-10-31 17:21:34 · 1581 阅读 · 0 评论 -
MySQL 8.0.11免安装版配置步骤(适用8.0.15版本)
下载地址为https://dev.mysql.com/downloads/mysql/1.下载MySQL 8.0.11版本的mysql,官方地址2.下载后,将解压出来的文件放到你想放到的磁盘处(不想遇到管理员权限问题的童鞋那就尽量不要放到C盘),我下载解压后放到了F盘,并将文件名改成了MySQL。3.在MySQL文件夹下找到my.ini或my-default.ini,如果没有.ini结...转载 2019-02-28 18:21:17 · 593 阅读 · 0 评论 -
MySQL数据库驱动mysql-connector-java与数据库版本的匹配
jar包的下载地址:https://dev.mysql.com/downloads/file/?id=477058之前我的MySQL数据库驱动mysql-connector-java版本号为5.1.34,在升级成8.0.9-rc版本后,发现原来的连接方式报错了。故在这里记录一下新版本的MySQL数据库驱动的连接使用方式。先贴出来以前旧版本(5.1.34)的连接方式:db.driverC...转载 2019-03-03 23:14:48 · 9297 阅读 · 0 评论 -
mysql执行sql语句提示Expression #1 of ORDER BY clause is not in GROUP BY
mysql 新版本出现group by 语句不兼容问题[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column’information_schema.PROFILING.SEQ’ which is not functionally depen...原创 2019-09-12 16:35:23 · 2283 阅读 · 0 评论 -
linux下实现mysql数据库每天自动定时备份
本文为 testcs_dn(微wx笑) 原创文章转载 2017-06-05 16:52:36 · 348 阅读 · 0 评论 -
windows下mysql每天定时备份数据库几种方法
在windows中备份mysql 数据库的方法有很多种,如有常用的WinRAR备份mysql、mysqldump备份成sql文件、xcopy 直接复制文件形式备份数据库,下面我来总结一下这些方法,并给出相关实例。第一种:新建批处理文件 backup.dat,里面输入以下代码:[html] view plain copynet转载 2017-06-05 16:49:40 · 7280 阅读 · 0 评论 -
navicat 连接mysql时报错1045 问题
navicat for MySQL 连接本地数据库出现1045错误 如下图:连接mysql时报错1045 问题" style="margin:0px; padding:0px; border:0px; list-style:none">查了很多资料,意思是说mysql没有授权远程连接,也就是权限不够;解决方法:1.首先打开命令行:开始->运行->cmd。转载 2017-04-10 09:49:49 · 5674 阅读 · 0 评论 -
Oracle中获取系统当前时间和处理时间
获取当前时间:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;ORACLE里获取一个时间的年、季、月、周、日的函数select to_char(sysdate, 'yyyy' ) from dual; --年select to_char(sysdate, 'MM' ) from dual; --月s转载 2017-04-10 10:23:39 · 3152 阅读 · 0 评论 -
oracle误删数据恢复方法
1. select * from A //查询A中所有的数据,可以看到三条数据 2. delete A //删除A中所有的数据,三条数据消失 3. select * from A //无数据。 4. insert into A select * from A as of timestamp to_Dat原创 2017-04-10 10:27:06 · 151 阅读 · 0 评论 -
查看ORACLE的当前连接数
SQL> select count(*) from v$session #当前的连接数SQL> Select count(*) from v$session where status='ACTIVE' #并发连接数SQL> select value from v$parameter where name = 'processes' --数据库允许的最大连接数SQL> show para转载 2017-04-10 10:34:23 · 376 阅读 · 0 评论 -
ORACLE的一个表空间对应多个用户
首次对一个表空间分配用户,比如表空间为A,用户为USER01,赋予该用户dba权限,之后想在新建一个只有查询权限的用户USER02,做法如下:使用USER01用户创建一个新用户USER02,只赋予CONNECT权限。使用该用户查询语句为SELECT * from A.TAB; 其中tab为表空间A的某个表名。如果使用用户USER01只需这样查询SELECT * from原创 2017-04-10 10:36:03 · 11039 阅读 · 0 评论 -
Oracle权限管理详解
Oracle 权限权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级、System 系统级、Role 角色级。这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。对管理权限而言,角色转载 2017-04-10 10:56:13 · 508 阅读 · 0 评论 -
ORACLE XE 报无监听
在你的安装目录下:D:\oracle\app\oracle\product\11.2.0\server\network\ADMIN(这是我的安装目录),找到listener.ora和tnsnames.ora,修改里面的host值为自己的主机名。原创 2017-04-10 10:57:02 · 1237 阅读 · 1 评论 -
在代码里每天创建表
ServerConfigure sc = ServerConfigure.getServerConfigerInstance();//获取数据库连接 Connection conn = null; try { conn = sc.getDataSource().getConnection();//获取数据源 //生成表名 Calen原创 2017-04-10 11:17:35 · 239 阅读 · 0 评论 -
mybatis执行批量更新update
网上说Mybatis映射文件中的sql语句不允许 ; 符号,本人用mysql测试确实如此,具体原因没找到!可以换两种方式可以处理。 当前数据库是oracle,可以使用case when来拼成一长串sql处理单字段:UPDATE mytable SET myfield = CASE id WHEN 1 THEN 'value'原创 2017-04-09 22:59:42 · 1011 阅读 · 0 评论