当前位置: 首页 > news >正文

达蒙DM数据库使用经验

DM表/字段注释

注:dm数据库无法在建表的同时为字段名添加注释

//为表添加注释
comment on table 库名.表名 is '表注释';
//为表字段添加注释
comment on column 库名.表名.列名 is '列注释';

DM查询错误:无效的表或视图

1,确认表一定存在
2,DM默认查询的是用户名所对应的库名的表,若要查询非用户名对应库名的表需要加上库名.表名查询

DM表自增列管理

将表中的某列转换成自增列且以前存在的数据不变,从当前最大值开始实现自增,以下是解决步骤:

1,先将TABLE3表名右击重命名成TABLE2
2,再右击已重命名的表名TABLE2,选择【生成SQL脚本】-> 【Create to】-> 【新SQL编辑器】
3,将创建表的语法粘贴到新SQL编辑器后,,将表名修改成重命名前的表名,将id列的类型修改成int或者bigint类型,再加上自增列的当前值和增长值,其他语法不变( 语法格式IDENTITY [ (种子, 增量) ])4,创建好表后,再利用insert .. select ..语法将TABLE2的数据插入到新创建的TABLE3表中,要注意加上列名5, 执行以下sql,关闭自增长:SET IDENTITY_INSERT "SYSDBA"."TABLE_3"  ON6, 执行以下sql,开启自增长:SET IDENTITY_INSERT "SYSDBA"."TABLE_3"  OFF

DM序列管理

1,创建自增序列(从1开始自增1):

create sequence s1
start with 1  --开始值
increment by 1 --每次增加多少
maxvalue 200 --最大值
nocache/cache  --是否缓存
nocycle/cycle  --是否循环例子:
CREATE SEQUENCE SEQ_flow_dept START WITH 1 INCREMENT BY 1 MAXVALUE 200000 NOCYCLE;

2,获取序列下一个值

select SEQ_flow_dept.NEXTVAL;

3,获取序列当前值

select SEQ_NOCYCL.CURRVAL;

4,查看序列状态

select * from dba_sequences where sequence_name='s1';

5,修改序列

ALTER SEQUENCE [ <模式名>.] <序列名> [ <序列修改选项列表>];
INCREMENT BY <增量值>|
MAXVALUE <最大值>|
NOMAXVALUE|
MINVALUE <最小值>|
NOMINVALUE|
CYCLE|
NOCYCLE|
CACHE <缓存值>|
NOCACHE|
ORDER|
NOORDER |
CURRENT VALUE <当前值 >例子:
alter sequence s2 maxvalue 50;
alter sequences s2 minvalue -1000;

6,删除序列

DROP SEQUENCE [IF EXISTS] [ <模式名>.]<序列名 >
参数:<模式名> 指明被删除序列所属的模式,缺省为当前模式;<序列名> 指明被删除序列的名称。
例子:
drop sequence s2;

DM锁表解决方案

查看锁等待视图
select * from v$trxwait;
查看连接会话
SELECT * FROM v$sessions WHERE trx_id in (select id from v$trxwait)
关闭会话
sp_close_session(sess_id);

错误信息

1,No row with the given identifier exists: [com.sinosoft.authorization.module.

有两张表,table1和table2.产生此问题的原因就是table1里做了关联<one-to-one>或者
<many-to-one unique="true">(特殊的多对一映射,实际就是一对一)来关联table2.
当hibernate查找的时候,table2里的数据没有与table1相匹配的,
这样就会报No row with the given identifier exists这个错.用数据库的解释:用父表B表的ID和子表A表进行关联,即A表中存在一个外键,
这个外键参照了B表的ID。但是现在在A表有某一个或多个外键值,在B表中不存在,这就是违反数据的完整性的约束

达梦数据库时提示‘登录失败次数超过限制’ 然后我切换成SYSDBA账号

-- 查询用户名锁定情况
select username as "达梦数据库用户名", account_status as "账户状态",lock_date as "锁定时间",* from dba_users;发现有用户名的用户状态出现LOCKED,然后查询设置的失败次数限制以及锁定时间-- 查询达梦数据库用户名登录失败设置
select b.username as "达梦数据库用户名",a.failed_num as "失败次数限制",a.failed_attemps as "失败尝试次数",a.lock_time as "锁定时间(min)" from sysusers a right join all_users b on a.id=b.user_id;如果不想等时间失效可以执行一下语句对其进行解锁操作alter user 填写要解锁的用户名 account unlock;可以执行下面语句进行查询导致数据库被锁的操作ipselect * from SYSACCHISTORIES
http://www.lryc.cn/news/119968.html

相关文章:

  • Redis—集群
  • 【C语言】数据在内存中的存储详解
  • PIC单片机配置字的设置
  • JavaWeb-Servlet服务连接器(一)
  • 新华三超融合态势感知标准版
  • AutoSAR系列讲解(深入篇)13.2-Mcal Port配置
  • Java旋转数组中的最小数字(图文详解版)
  • Android 13 Hotseat定制化修改——005 hotseat图标禁止形成文件夹
  • 插入、希尔、归并、快速排序(java实现)
  • 怎么把图片表格转换成word表格?几个步骤达成
  • 多线程与高并发--------阻塞队列
  • 前端-NVM,Node.js版本管理
  • React - useEffect函数的理解和使用
  • python模块 — 加解密模块rsa,cryptography
  • 【C++】速识模板(template<class T>)
  • 腾讯云10万日活服务器配置怎么选?费用多少?
  • vue 使用vue-video-player加载视频(铺满容器)
  • OpenCV(三)——图像分割(三)
  • 数论复习c++
  • Java try-with-resources 显性 与 隐性 关闭 资源
  • Vue在页面输出JSON对象,测试接口可复制使用
  • 【STM32】FreeRTOS开启后,不再进入主函数的while(1)
  • Python+Selenium+Unittest 之selenium11--WebDriver操作方法1-常用操作
  • 气液固三相线识别—Langmuir部分复现
  • Redis——常见数据结构与单线程模型
  • 大数据-玩转数据-Flink-Transform
  • Java泛型集合简明教程
  • Prometheus-RabbitMQ Exporter
  • flink读取kafka数据存储iceberg
  • 文章二:分支管理策略 - 分支玩转:Git分支管理实战