使用达梦数据库新建了一个用户,给他分配了另一个模式,虽然授予了 的权限,但是还是无法创建表,应该是要授予 权限(其他还需要授予例如CTRETAE ANY VIEW等等其他权限),按确定保存的时候报错:授权者没有此授权权限。 原因是默认达梦数据库默认把ANY的授权给禁用了,就算是使用SYSDBA也不行。 修改dm.ini 路径是 /opt/dmdbms/data/DAMENG/dm.ini 增加一行(可以先查找,如果有就只要把值改成1就行): ENABLE_DDL_ANY_PRIV = 1 使用SQL命令修改(推荐)…

2023-08-01 0条评论 306点热度 0人点赞 admin 阅读全文

下载Docker镜像,下载地址:https://eco.dameng.com/download/ 或者直接知道下载地址后: wget https://download.dameng.com/eco/dm8/dm8_20220822_rev166351_x86_rh6_64_ctm.tar 例如下载到的tar文件存放在/opt/dm8_20220822_rev166351_x86_rh6_64_ctm.tar 导入安装包: #导入安装包 docker load --input /opt/dm8_20220822_re…

2023-06-04 0条评论 319点热度 0人点赞 admin 阅读全文

如题,需要用SQL随机查询出若干行数据。 以查询t_table表10条随机记录为例, -- Oracle Select随机10个 SELECT * FROM ( SELECT * FROM t_table ORDER BY DBMS_RANDOM.RANDOM ) WHERE rownum < 10; -- MySQL select * from t_table order by rand() limit 10;  

2023-05-03 0条评论 203点热度 0人点赞 admin 阅读全文

需要在某个表筛选出:按照某个字段分组、分组后的每一个分组的第一行数据 例如一张student学生表,按照学生所在的班级,筛选出每个班的一个学生 select * -- column names as required! from ( select id, name, class_no , row_number() over ( partition by class_no order by DBMS_RANDOM.RANDOM ) rn_ from t_student ) where rn_ = 1 -- 这里ord…

2023-03-25 0条评论 318点热度 0人点赞 admin 阅读全文

最近需要在SpringBoot下换国产达梦数据库,有个需求是一个用户下是有多个模式,需要在JDBC url下指定模式去连接。 通过研究,是这样的,记录如下以备忘: datasource: driver-class-name: dm.jdbc.driver.DmDriver url: jdbc:dm://192.168.1.2:5236/?schema=SYSDBA&serverTimezone=UTC&useSSL=false&useUnicode=true&characterEnc…

2023-01-07 0条评论 934点热度 0人点赞 admin 阅读全文

Java中很多地方的index都是0开始的,不过有个特殊,就是在操作JDBC的时候,比如设置patameter的时候,是以1开始的,今天在Hibernate中使用: String sql = "insert into t_table_name(id, name) values(?,?)"; SQLQuery query = sessionFactory.getCurrentSession().createSQLQuery(sql); query.setParameter(1, 1); query.setParame…

2022-12-19 0条评论 295点热度 0人点赞 admin 阅读全文

我们知道一半SQL一次插入多条数据,可以使用: insert into table_name(id, name) values(1, 'Terry'), (2, 'Tom'); 比如MySQL就是支持的,但是这样的SQL到了Oracle里就报错。 如果一次执行一条SQL,多条数据使用多条SQL,肯定是可以的,不过这样的效率是比较低的: insert into table_name(id, name) values(1, 'Terry'); insert into table_name(id, name) value…

2022-12-18 0条评论 417点热度 0人点赞 admin 阅读全文

无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count 目前多数人的写法 多次Review代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下: ##### SQL写法: SELECT count(*) FROM table WHERE a = 1 AND b = 2 ##### Java写法: int nums = xxDao.countXxxxByXxx(params); if ( nums > 0 ) { /…

2022-10-17 0条评论 471点热度 0人点赞 admin 阅读全文

BATJTMD等大厂的面试难度越来越高,但无论从大厂还是到小公司,一直未变的一个重点就是对SQL优化经验的考察。一提到数据库,先“说一说你对SQL优化的见解吧?”。SQL优化已经成为衡量程序猿优秀与否的硬性指标,甚至在各大厂招聘岗位职能上都有明码标注,如果是你,在这个问题上能吊打面试官还是会被吊打呢? 有朋友疑问到,SQL优化真的有这么重要么?如下图所示,SQL优化在提升系统性能中是:(成本最低 && 优化效果最明显) 的途径。如果你的团队在SQL优化这方面搞得很优秀,对你们整个大型系统可用性方面无…

2022-08-28 0条评论 463点热度 0人点赞 admin 阅读全文

MySQL中搜索我们一般是使用like关键词来搜索,不过我们还可能遇更加复杂的搜索条件,例如需要正则表达式(写过程序的一般都知道)去寻找的情况, 匹配字符串 匹配字符串是正则表达式最基础的应用。我们先给出一个例子:我们从一个用户表中查询出名字中包含有100数字的用户 SELECT * FROM my_user WHERE `name` REGEXP '100';   我们得到了用户ID为1的用户:小红100 该语句中不同于之前的语句,我们使用REGEXP关键字代表后面为正则表达式 这条语句看起来和LIKE…

2022-08-26 0条评论 516点热度 0人点赞 admin 阅读全文
123456