设置主键自增
SELECT
max("mail_id")
FROM
"xianglong_ehrson"."p_send_mail_record";
ALTER SEQUENCE "xianglong_ehrson"."p_send_mail_record_mail_id_seq" RESTART WITH 100;
变量含义
table_schema 库名
table_name 表名
修改system用户密码:
alter user system with password ‘123456’;
查询数据库中的表结构
SELECT * FROM information_schema.COLUMNS WHERE table_schema='{table_schema}' AND table_name='{table_name}'
查询指定表注释信息
SELECT * FROM information_schema.tables WHERE table_schema='{table_schema}' AND table_name='{table_name}'
金仓自带DB工具 KStudio 可以方便的查询sql和修改库、模式、权限
权限
权限说起来还是很复杂的,有空间,有模式,有用户。这里只解释用户权限
- 首先是创建用户,把用户所属的库分给用户。
- 我这里是一个库,指定一个用户
- 要给用户分配各各模式的权限
- 表权限,序列权限,读表结构权限
- 空库中有几个模式的权限也要给,特别是sysmac中的表和序列权限
kingbase的ONLY_FULL_GROUP_BY模式
查看
show sql_mode;
临时设置 设置为空为关闭
set sql_mode = ‘’;
设置配置文件,全局永久设置
编辑 /opt/kingbase/data/kingbase.conf 文件中最后一行添加以下参数:
sql_mode = ‘’
金仓直接把空字符串当成null,如何解决
例子:select * from sys_depart where parent_id = ‘’
在客户端连接工具执行:show ora_input_emptystr_isnull,发现结果是on,即配置了“空字符串默认被转为NULL”导致查询结果异常。在kingbase.config配置文件中修改ora_input_emptystr_isnull=off
如果上面改了还是有空格出现,请把字段从char换成varchar类型
我发现人大金仓的缓存特别严重,总有数据进去了还没有反应的情况。
kingbase取反 和mysql取反 区别
mysql:
!(isnull(su.phonenumber) || su.phonenumber='')
kingbase:
not(su.phonenumber isnull or su.phonenumber='')
常用维护命令
重启时一定要切换到kingbase用户下
//需要切换到批定用户下查看
su kingbase
cd /opt/kingbase/Server/bin
//重载data配置文件
./sys_ctl reload -D /opt/kingbase/data (data的路径)
//查询数据库当前状态
./sys_ctl status -D data的路径
//重启数据库
./sys_ctl restart -D data的路径
// 找不到server或data目录时可以使用下面命令查看运行目录
ps -ef |grep kingbase
过期更换License文件
# 删除旧的license授权文件
rm -rf /home/kdb_install/license.dat
# 拷贝新的license授权文件, 注意每次解压的license目录和文件名可能不一致。
cp -rp /home/kingbase/uploads/license***/license_***_*.dat /home/kdb_install/license.dat
# 赋予750权限
chmod 750 /home/kdb_install/license.dat
# 重启人大金仓数据库
$ sys_ctl restart -D /home/kdb_install/data/
kingbase常用命令汇总(1)
https://blog.csdn.net/u013938578/article/details/124256034
【KingbaseES】V8R3修改SYSTEM密码(集群)
https://blog.csdn.net/sinat_36528886/article/details/123303434